From 1f8dfcd730ddc3f59d86c98d229815a72137b2bd Mon Sep 17 00:00:00 2001 From: "rohit.iyer" Date: Tue, 11 Feb 2025 11:47:48 +0530 Subject: [PATCH 01/16] testing web native display --- src/util/campaignRender/nativeDisplay.js | 158 +++++++++++++++++++++-- 1 file changed, 147 insertions(+), 11 deletions(-) diff --git a/src/util/campaignRender/nativeDisplay.js b/src/util/campaignRender/nativeDisplay.js index 5efa0284..7a203d73 100644 --- a/src/util/campaignRender/nativeDisplay.js +++ b/src/util/campaignRender/nativeDisplay.js @@ -1,5 +1,5 @@ -import { CTWebPersonalisationBanner } from '../web-personalisation/banner' -import { CTWebPersonalisationCarousel } from '../web-personalisation/carousel' +import {CTWebPersonalisationBanner} from '../web-personalisation/banner' +import {CTWebPersonalisationCarousel} from '../web-personalisation/carousel' export const renderPersonalisationBanner = (targetingMsgJson) => { if (customElements.get('ct-web-personalisation-banner') === undefined) { @@ -16,6 +16,7 @@ export const renderPersonalisationBanner = (targetingMsgJson) => { containerEl.appendChild(bannerEl) } + export const renderPersonalisationCarousel = (targetingMsgJson) => { if (customElements.get('ct-web-personalisation-carousel') === undefined) { customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel) @@ -28,6 +29,7 @@ export const renderPersonalisationCarousel = (targetingMsgJson) => { container.appendChild(carousel) } + export const handleKVpairCampaign = (targetingMsgJson) => { const inaObj = {} inaObj.msgId = targetingMsgJson.wzrk_id @@ -37,28 +39,77 @@ export const handleKVpairCampaign = (targetingMsgJson) => { if (targetingMsgJson.msgContent.kv != null) { inaObj.kv = targetingMsgJson.msgContent.kv } - const kvPairsEvent = new CustomEvent('CT_web_native_display', { detail: inaObj }) + const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj}) document.dispatchEvent(kvPairsEvent) } -export const renderCustomHtml = (targetingMsgJson, logger) => { - const { display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot } = targetingMsgJson || {} - const divId = display.divId || {} +export const renderCustomHtml = (targetingMsgJson) => { + console.log('renderCustomHtml targetingMsgJson', targetingMsgJson) + const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {} + + + const {divId, preview: isPreview, url, divSelector} = display || {} const details = display.details[0] const html = details.html + // const divId = targetingMsgJson.display.divId + // const html = targetingMsgJson.display.html + // const isPreview = targetingMsgJson.display.preview + if (!divId || !html) { - logger.error('No div Id or no html found') + console.error('No div Id or no html found') return } + + if (isPreview) { + renderPreviewIframe(url, divSelector, divId, html) + return + // const iframe = document.createElement('iframe') + // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z' + // iframe.src = targetingMsgJson.display.url + // iframe.width = '100%' + // iframe.height = '500px' + // iframe.sandbox = 'allow-scripts allow-same-origin' + // iframe.id = 'wiz-custom-html-preview' + // const divSelector = targetingMsgJson.display.divSelector + // const containerElement = document.querySelector(divSelector) + // console.log('containerElement', containerElement) + // console.log('iframe', iframe) + // containerElement.innerHTML = '' + // containerElement.appendChild(iframe) + + + // const findIframeElement = () => { + // let count = 0 + // const intervalId = setInterval(() => { + // const iframeElement = document.getElementById('wiz-custom-html-preview'); + // if (iframeElement && iframe && iframe.contentDocument) { + // // Access the iframe's document and query for a div inside + // const divInsideIframe = iframe.contentDocument.querySelector(divId); + // processElement(iframeElement) + + + // clearInterval(intervalId) + // console.log('divInsideIframe', divInsideIframe); + // } else if (++count >= 20) { + // console.log(`No iframe element found '${ divId }'.`) + // clearInterval(intervalId) + // } + // }, 500) + // } + // findIframeElement() + } + + let notificationViewed = false const payload = { msgId: wzrkId, pivotId: wzrkPivot } + const raiseViewed = () => { if (!notificationViewed) { notificationViewed = true @@ -66,16 +117,17 @@ export const renderCustomHtml = (targetingMsgJson, logger) => { } } + const tryFindingElement = (divId) => { let count = 0 const intervalId = setInterval(() => { const retryElement = document.querySelector(divId) if (retryElement) { raiseViewed() - retryElement.outerHTML = html + processElement(retryElement, html) clearInterval(intervalId) } else if (++count >= 20) { - logger.log(`No element present on DOM with divId '${divId}'.`) + console.log(`No element present on DOM with divId '${ divId }'.`) clearInterval(intervalId) } }, 500) @@ -84,6 +136,90 @@ export const renderCustomHtml = (targetingMsgJson, logger) => { tryFindingElement(divId) } + +const processElement = (element, html) => { + console.log('processElement element', element) + console.log('processElement html', html) + if (element) { + element.outerHTML = html + } +} + + +const renderPreviewIframe = async (url, divSelector, divId, html) => { + const containerElement = document.querySelector(divSelector) + console.log('containerElement', containerElement) + containerElement.style.height = 'calc(100% - 52px)' + if (!containerElement) { + console.error(`No element found for selector: ${ divSelector }`) + return + } + + const response = await fetch(url); + if (!response.ok || !response.body) { + return; + } + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let htmlString = ''; + while (true) { + const {done, value} = await reader.read(); + if (done) break; + htmlString += decoder.decode(value, {stream: true}); + } + htmlString += decoder.decode() + const iframe = document.createElement('iframe') + iframe.srcdoc = htmlString + iframe.width = '100%' + iframe.height = '100%' + iframe.sandbox = 'allow-scripts allow-same-origin' + iframe.id = 'wiz-custom-html-preview' + + + console.log('iframe', iframe) + + containerElement.innerHTML = '' + containerElement.appendChild(iframe) + + + // findIframeElement(() => { + // const divInsideIframe = iframe.contentDocument?.querySelector(divId); + // if (divInsideIframe) { + // processElement(divInsideIframe, html) + // console.log('Found div inside iframe:', divInsideIframe); + // } else { + // console.warn('No div found inside iframe.'); + // } + // }); + iframe.onload = function () { + console.log('iframe onload') + findIframeElement(divId, html, iframe) + } +} + + +const findIframeElement = (divId, html, iframeElement) => { + console.log('findIframeElement divId', divId) + console.log('findIframeElement html', html) + console.log('findIframeElement iframeElement', iframeElement) + let count = 0 + const intervalId = setInterval(() => { + console.log('count', count) + if (iframeElement && iframeElement.contentDocument) { + const divInsideIframe = iframeElement.contentDocument?.querySelector(divId) + if (divInsideIframe) { + processElement(divInsideIframe, html) + clearInterval(intervalId) + // callback(); + } + } else if (++count >= 20) { + clearInterval(intervalId) + console.warn('Iframe element not found after 20 attempts.') + } + }, 500) +} + + export const handleJson = (targetingMsgJson) => { const inaObj = {} inaObj.msgId = targetingMsgJson.wzrk_id @@ -95,6 +231,6 @@ export const handleJson = (targetingMsgJson) => { if (targetingMsgJson.display.json != null) { inaObj.json = json } - const jsonEvent = new CustomEvent('CT_web_native_display_json', { detail: inaObj }) + const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj}) document.dispatchEvent(jsonEvent) -} +} \ No newline at end of file From ba27c12e251d5632cb7f6ac73a8af5a3e57cd33f Mon Sep 17 00:00:00 2001 From: "rohit.iyer" Date: Fri, 14 Feb 2025 13:58:06 +0530 Subject: [PATCH 02/16] testing post message --- clevertap.js | 178 ++++++++++++++++++++++- clevertap.js.map | 2 +- clevertap.min.js | 2 +- src/clevertap.js | 4 +- src/util/campaignRender/nativeDisplay.js | 85 ++++++----- 5 files changed, 227 insertions(+), 44 deletions(-) diff --git a/clevertap.js b/clevertap.js index 43482a1f..8426a0d9 100644 --- a/clevertap.js +++ b/clevertap.js @@ -5163,21 +5163,63 @@ }); document.dispatchEvent(kvPairsEvent); }; - const renderCustomHtml = (targetingMsgJson, logger) => { + const renderCustomHtml = targetingMsgJson => { + console.log('renderCustomHtml targetingMsgJson', targetingMsgJson); const { display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot } = targetingMsgJson || {}; - const divId = display.divId || {}; + const { + divId, + preview: isPreview, + url, + divSelector + } = display || {}; const details = display.details[0]; - const html = details.html; + const html = details.html; // const divId = targetingMsgJson.display.divId + // const html = targetingMsgJson.display.html + // const isPreview = targetingMsgJson.display.preview if (!divId || !html) { - logger.error('No div Id or no html found'); + console.error('No div Id or no html found'); return; } + if (isPreview) { + renderPreviewIframe(url, divSelector, divId, html); + return; // const iframe = document.createElement('iframe') + // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z' + // iframe.src = targetingMsgJson.display.url + // iframe.width = '100%' + // iframe.height = '500px' + // iframe.sandbox = 'allow-scripts allow-same-origin' + // iframe.id = 'wiz-custom-html-preview' + // const divSelector = targetingMsgJson.display.divSelector + // const containerElement = document.querySelector(divSelector) + // console.log('containerElement', containerElement) + // console.log('iframe', iframe) + // containerElement.innerHTML = '' + // containerElement.appendChild(iframe) + // const findIframeElement = () => { + // let count = 0 + // const intervalId = setInterval(() => { + // const iframeElement = document.getElementById('wiz-custom-html-preview'); + // if (iframeElement && iframe && iframe.contentDocument) { + // // Access the iframe's document and query for a div inside + // const divInsideIframe = iframe.contentDocument.querySelector(divId); + // processElement(iframeElement) + // clearInterval(intervalId) + // console.log('divInsideIframe', divInsideIframe); + // } else if (++count >= 20) { + // console.log(`No iframe element found '${ divId }'.`) + // clearInterval(intervalId) + // } + // }, 500) + // } + // findIframeElement() + } + let notificationViewed = false; const payload = { msgId: wzrkId, @@ -5198,10 +5240,10 @@ if (retryElement) { raiseViewed(); - retryElement.outerHTML = html; + processElement(retryElement, html); clearInterval(intervalId); } else if (++count >= 20) { - logger.log("No element present on DOM with divId '".concat(divId, "'.")); + console.log("No element present on DOM with divId '".concat(divId, "'.")); clearInterval(intervalId); } }, 500); @@ -5209,6 +5251,96 @@ tryFindingElement(divId); }; + + const processElement = (element, html) => { + console.log('processElement element', element); + console.log('processElement html', html); + + if (element) { + element.outerHTML = html; + } + }; + + const renderPreviewIframe = async (url, divSelector, divId, html) => { + const containerElement = document.querySelector(divSelector); + console.log('containerElement', containerElement); + containerElement.style.height = 'calc(100% - 52px)'; + + if (!containerElement) { + console.error("No element found for selector: ".concat(divSelector)); + return; + } + + const response = await fetch(url); + + if (!response.ok || !response.body) { + return; + } + + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let htmlString = ''; + + while (true) { + const { + done, + value + } = await reader.read(); + if (done) break; + htmlString += decoder.decode(value, { + stream: true + }); + } + + htmlString += decoder.decode(); + const iframe = document.createElement('iframe'); + iframe.srcdoc = htmlString; + iframe.width = '100%'; + iframe.height = '100%'; + iframe.sandbox = 'allow-scripts allow-same-origin'; + iframe.id = 'wiz-custom-html-preview'; + console.log('iframe', iframe); + containerElement.innerHTML = ''; + containerElement.appendChild(iframe); // findIframeElement(() => { + // const divInsideIframe = iframe.contentDocument?.querySelector(divId); + // if (divInsideIframe) { + // processElement(divInsideIframe, html) + // console.log('Found div inside iframe:', divInsideIframe); + // } else { + // console.warn('No div found inside iframe.'); + // } + // }); + + iframe.onload = function () { + console.log('iframe onload'); + findIframeElement(divId, html, iframe); + }; + }; + + const findIframeElement = (divId, html, iframeElement) => { + console.log('findIframeElement divId', divId); + console.log('findIframeElement html', html); + console.log('findIframeElement iframeElement', iframeElement); + let count = 0; + const intervalId = setInterval(() => { + console.log('count', count); + + if (iframeElement && iframeElement.contentDocument) { + var _iframeElement$conten; + + const divInsideIframe = (_iframeElement$conten = iframeElement.contentDocument) === null || _iframeElement$conten === void 0 ? void 0 : _iframeElement$conten.querySelector(divId); + + if (divInsideIframe) { + processElement(divInsideIframe, html); + clearInterval(intervalId); // callback(); + } + } else if (++count >= 20) { + clearInterval(intervalId); + console.warn('Iframe element not found after 20 attempts.'); + } + }, 500); + }; + const handleJson = targetingMsgJson => { const inaObj = {}; inaObj.msgId = targetingMsgJson.wzrk_id; @@ -5228,6 +5360,37 @@ }); document.dispatchEvent(jsonEvent); }; + const checkCustomHtmlNativeDisplayPreview = (logger, accountId) => { + console.log('checkCustomHtmlNativeDisplayPreview'); // const search = window.location.search + // const parentWindow = window.opener + // if (search === '?customHtmlPreview') { + // // open in visual builder mode + // logger.debug('open in visual builder mode') + // window.addEventListener('message', handleMessageEvent, false) + // if (parentWindow) { + // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*') + // } + // return + // } + + if (!window.opener) { + console.log('This tab was manually opened. Resetting window.name.'); + window.name = ''; // Reset to prevent incorrect flag detection + + return; + } + + if (window.name === 'opened_from_my_tab') { + console.log('This tab was opened from the parent tab!'); // Now attach the event listener + + window.addEventListener('message', event => { + // if (event.origin !== "http://localhost:8083") return; // Security check + console.log('Received message from parent:', event.data); // Perform actions based on the received data + }); + } else { + console.log('This tab was opened manually, not by the parent tab.'); + } + }; const invokeExternalJs = (jsFunc, targetingMsgJson) => { const func = window.parent[jsFunc]; @@ -7298,7 +7461,7 @@ } else if (targetNotif.msgContent.type === 4) { renderVisualBuilder(targetNotif, false); } else if (targetNotif.msgContent.type === 5) { - renderCustomHtml(targetNotif, _logger); + renderCustomHtml(targetNotif); } else if (targetNotif.msgContent.type === 6) { handleJson(targetNotif); } else { @@ -9339,6 +9502,7 @@ } checkBuilder(_classPrivateFieldLooseBase(this, _logger$a)[_logger$a], _classPrivateFieldLooseBase(this, _account$6)[_account$6].id); + checkCustomHtmlNativeDisplayPreview(); _classPrivateFieldLooseBase(this, _session$3)[_session$3].cookieName = SCOOKIE_PREFIX + '_' + _classPrivateFieldLooseBase(this, _account$6)[_account$6].id; if (region) { diff --git a/clevertap.js.map b/clevertap.js.map index e8ab76c0..a1bc6d37 100644 --- a/clevertap.js.map +++ b/clevertap.js.map @@ -1 +1 @@ -{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const checkBuilder = (logger, accountId) => {\n const search = window.location.search\n const parentWindow = window.opener\n\n if (search === '?ctBuilder') {\n // open in visual builder mode\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n }\n if (search === '?ctBuilderPreview') {\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n }\n\n if (search === '?ctBuilderSDKCheck') {\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === window.location.href.split('?')[0]) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import { CTWebPersonalisationBanner } from '../web-personalisation/banner'\nimport { CTWebPersonalisationCarousel } from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson, logger) => {\n const { display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot } = targetingMsgJson || {}\n\n const divId = display.divId || {}\n const details = display.details[0]\n const html = details.html\n\n if (!divId || !html) {\n logger.error('No div Id or no html found')\n return\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n retryElement.outerHTML = html\n clearInterval(intervalId)\n } else if (++count >= 20) {\n logger.log(`No element present on DOM with divId '${divId}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', { detail: inaObj })\n document.dispatchEvent(jsonEvent)\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { checkBuilder, addAntiFlicker } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => { }\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n checkBuilder(this.#logger, this.#account.id)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","checkBuilder","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","searchParams","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":";;;;;;;;;;;;;;;;;;;;EAAO,MAAMA,aAAa,GAAG,oBAAtB;EACA,MAAMC,eAAe,GAAG,QAAxB;EACA,MAAMC,cAAc,GAAG,KAAvB;;;;;;;;;;;;ECAQ,MAAMC,OAAN,CAAc;EAO3BC,EAAAA,WAAW,GAAsE;EAAA,QAApE;EAAEC,MAAAA;EAAF,KAAoE,uEAA3D,EAA2D;EAAA,QAAvDC,MAAuD,uEAA9C,EAA8C;EAAA,QAA1CC,YAA0C,uEAA3BP,aAA2B;EAAA,QAAZQ,KAAY,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aALvE;EAKuE;EAAA;EAAA;EAAA,aAJjER;EAIiE;EAAA;EAAA;EAAA,aAHjE;EAGiE;EAAA;EAAA;EAAA,aAFxE;EAEwE;EAC/E,SAAKK,EAAL,GAAUA,EAAV;;EACA,QAAIC,MAAJ,EAAY;EACV,WAAKA,MAAL,GAAcA,MAAd;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,WAAKA,YAAL,GAAoBA,YAApB;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,WAAKA,KAAL,GAAaA,KAAb;EACD;EACF;;EAED,MAAIH,EAAJ,GAAU;EACR,uCAAO,IAAP;EACD;;EAED,MAAIA,EAAJ,CAAQI,SAAR,EAAmB;EACjB,gEAAkBA,SAAlB;EACD;;EAED,MAAIH,MAAJ,GAAc;EACZ,uCAAO,IAAP;EACD;;EAED,MAAIA,MAAJ,CAAYA,MAAZ,EAAoB;EAClB,0DAAeA,MAAf;EACD;;EAED,MAAII,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIH,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIC,KAAJ,GAAa;EACX,uCAAO,IAAP;EACD;;EAED,MAAIA,KAAJ,CAAWA,KAAX,EAAkB;EAChB,wDAAcA,KAAd;EACD;;EAED,MAAIG,iBAAJ,GAAyB;EACvB,QAAI,KAAKL,MAAT,EAAiB;EACf,uBAAU,KAAKA,MAAf,cAAyB,KAAKC,YAA9B;EACD,KAFD,MAEO;EACL,UAAI,KAAKA,YAAL,KAAsBP,aAA1B,EAAyC;EACvC,yBAAUE,cAAV,cAA4B,KAAKK,YAAjC;EACD;;EACD,aAAO,KAAKA,YAAZ;EACD;EACF;;EAED,MAAIK,aAAJ,GAAqB;EACnB,qBAAUX,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIE,WAAJ,GAAmB;EACjB,qBAAUZ,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIG,WAAJ,GAAmB;EACjB,qBAAUb,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAII,QAAJ,GAAgB;EACd,qBAAUd,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EArF0B;;ECFtB,MAAMK,uBAAuB,GAAG,IAAIC,MAAJ,CAAW,qCAAX,EAAkD,GAAlD,CAAhC;EACA,MAAMC,yBAAyB,GAAG,IAAID,MAAJ,CAAW,wBAAX,EAAqC,GAArC,CAAlC;EAEA,MAAME,gBAAgB,GAAG,IAAIF,MAAJ,CAAW,IAAX,EAAiB,GAAjB,CAAzB;EACA,MAAMG,KAAK,GAAG,OAAd;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,qBAAqB,GAAG,iBAA9B;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,gBAAgB,GAAG,WAAzB;EACA,MAAMC,aAAa,GAAG,aAAtB;;EACA,MAAMC,cAAc,GAAG,QAAvB;EACA,MAAMC,wBAAwB,GAAG,KAAK,EAAtC;;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,WAAW,GAAG,WAApB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,UAAU,GAAG,iBAAnB;EACA,MAAMC,UAAU,GAAG,UAAnB;EACA,MAAMC,YAAY,GAAG,QAArB;EAEA,MAAMC,MAAM,GAAG,QAAf;EAEA,MAAMC,OAAO,GAAG,SAAhB;EAEA,MAAMC,cAAc,GAAG,UAAvB;EACA,MAAMC,UAAU,GAAG,QAAnB;EACA,MAAMC,aAAa,GAAG,WAAtB;EACA,MAAMC,sBAAsB,GAAG,KAA/B;EACA,MAAMC,SAAS,GAAG,OAAlB;EACA,MAAMC,SAAS,GAAG,QAAlB;EACA,MAAMC,cAAc,GAAG,GAAvB;EACA,MAAMC,MAAM,GAAG,OAAf;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,aAAa,GAAG,QAAQ,GAA9B;;EACA,MAAMC,SAAS,GAAG,GAAlB;;EACA,MAAMC,yBAAyB,GAAG,IAAI,EAAJ,GAAS,IAA3C;;EACA,MAAMC,8BAA8B,GAAG,IAAI,EAAJ,GAAS,IAAhD;;EACA,MAAMC,6BAA6B,GAAG,GAAtC;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,WAAW,GAAG,OAApB;EACA,MAAMC,OAAO,GAAG,SAAhB;EACA,MAAMC,mBAAmB,GAAG,qBAA5B;EACA,MAAMC,oBAAoB,GAAG,sBAA7B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,eAAe,GAAG,mBAAxB;EACA,MAAMC,QAAQ,GAAG,YAAjB;EACA,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,aAAa,GAAG,IAAtB;EACA,MAAMC,mBAAmB,GAAG,OAAO,EAAP,GAAY,EAAxC;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,cAAc,GAAG,kBAAvB;EACA,MAAMC,4BAA4B,GAAG,8BAArC;EACA,MAAMC,eAAe,GAAG,iBAAxB;EACA,MAAMC,4BAA4B,GAAG,GAArC;EACA,MAAMC,0BAA0B,GAAG,cAAnC;EACA,MAAMC,0BAA0B,GAAG,WAAnC;EACA,MAAMC,aAAa,GAAG,oBAAtB;EAEA,MAAMC,aAAa,GAAG,CAC3B,QAD2B,EAE3B,aAF2B,EAG3B,cAH2B,EAI3B,mBAJ2B,EAK3BxB,mBAL2B,EAM3BC,oBAN2B,CAAtB;;EC9DA,MAAMwB,QAAQ,GAAIC,KAAD,IAAW;EACjC,SAAQ,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYC,MAAtD;EACD,CAFM;EAIA,MAAMC,QAAQ,GAAIF,KAAD,IAAW;EACjC;EACA,SAAOG,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,KAA/B,MAA0C,iBAAjD;EACD,CAHM;EAKA,MAAMO,YAAY,GAAIP,KAAD,IAAW;EACrC,SAAO,OAAQA,KAAR,KAAmB,QAAnB,IAAgCA,KAAK,YAAYQ,IAAxD;EACD,CAFM;EAIA,MAAMC,aAAa,GAAIC,GAAD,IAAS;EACpC,OAAK,MAAMC,IAAX,IAAmBD,GAAnB,EAAwB;EACtB,QAAIA,GAAG,CAACE,cAAJ,CAAmBD,IAAnB,CAAJ,EAA8B;EAAE,aAAO,KAAP;EAAc;EAC/C;;EACD,SAAO,IAAP;EACD,CALM;EAOA,MAAME,qBAAqB,GAAIC,CAAD,IAAO;EAC1C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,CAAD,CAAX,CAAN,IAAyBG,QAAQ,CAACH,CAAD,CAAxC;EACD,CAFM;EAIA,MAAMI,QAAQ,GAAIJ,CAAD,IAAO;EAC7B,SAAO,wBAAwBK,IAAxB,CAA6BL,CAA7B,KAAmC,OAAOA,CAAP,KAAa,QAAvD;EACD,CAFM;EAIA,MAAMM,YAAY,GAAIC,KAAD,IAAW;EACrC,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAA5B,IAAyCD,KAAK,KAAK,WAAvD,EAAoE;EAClE,WAAO,KAAP;EACD;;EACD,SAAO,IAAP;EACD,CALM;EAiBA,MAAME,sBAAsB,GAAG,CAACC,CAAD,EAAIC,MAAJ,KAAe;EACnD;EACA,MAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;EACzB,SAAK,MAAME,GAAX,IAAkBF,CAAlB,EAAqB;EACnB,UAAIA,CAAC,CAACZ,cAAF,CAAiBc,GAAjB,CAAJ,EAA2B;EACzB,cAAMC,YAAY,GAAGJ,sBAAsB,CAACC,CAAC,CAACE,GAAD,CAAF,EAASD,MAAT,CAA3C;EACA,YAAIG,YAAJ;EACAA,QAAAA,YAAY,GAAGC,QAAQ,CAACH,GAAD,EAAM3F,uBAAN,CAAvB;;EACA,YAAI6F,YAAY,CAACE,MAAb,GAAsB,IAA1B,EAAgC;EAC9BF,UAAAA,YAAY,GAAGA,YAAY,CAACG,SAAb,CAAuB,CAAvB,EAA0B,IAA1B,CAAf;EACAN,UAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBJ,YAAY,GAAG,0CAAvC;EACD;;EACD,eAAOJ,CAAC,CAACE,GAAD,CAAR;EACAF,QAAAA,CAAC,CAACI,YAAD,CAAD,GAAkBD,YAAlB;EACD;EACF;EACF,GAdD,MAcO;EACL,QAAIM,GAAJ;;EAEA,QAAIlC,QAAQ,CAACyB,CAAD,CAAZ,EAAiB;EACfS,MAAAA,GAAG,GAAGJ,QAAQ,CAACL,CAAD,EAAIvF,yBAAJ,CAAd;;EACA,UAAIgG,GAAG,CAACH,MAAJ,GAAa,IAAjB,EAAuB;EACrBG,QAAAA,GAAG,GAAGA,GAAG,CAACF,SAAJ,CAAc,CAAd,EAAiB,IAAjB,CAAN;EACAN,QAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBC,GAAG,GAAG,0CAA9B;EACD;EACF,KAND,MAMO;EACLA,MAAAA,GAAG,GAAGT,CAAN;EACD;;EACD,WAAOS,GAAP;EACD;;EACD,SAAOT,CAAP;EACD,CA/BM;EAiCA,MAAMK,QAAQ,GAAG,CAAC7B,KAAD,EAAQkC,KAAR,KAAkB;EACxC,SAAOlC,KAAK,CAACmC,OAAN,CAAcD,KAAd,EAAqB,EAArB,CAAP;EACD,CAFM;;ECnFA,MAAME,QAAQ,GAAG,MAAM;EAC5B,QAAMC,KAAK,GAAG,IAAI7B,IAAJ,EAAd;EACA,SAAO6B,KAAK,CAACC,WAAN,KAAsB,EAAtB,GAA2BD,KAAK,CAACE,QAAN,EAA3B,GAA8C,EAA9C,GAAmDF,KAAK,CAACG,MAAN,EAA1D;EACD,CAHM;EAKA,MAAMC,MAAM,GAAG,MAAM;EAC1B,SAAOC,IAAI,CAACC,KAAL,CAAY,IAAInC,IAAJ,EAAD,CAAaoC,OAAb,KAAyB,IAApC,CAAP;EACD,CAFM;EAIA,MAAMC,iBAAiB,GAAIC,OAAD,IAAa;EAC5C,SAAQ,QAAQJ,IAAI,CAACK,KAAL,CAAWD,OAAO,CAACF,OAAR,KAAoB,IAA/B,CAAhB;EACD,CAFM;EAIA,MAAMI,OAAO,GAAIC,EAAD,IAAQ;EAC7B;EACA,MAAIC,WAAW,CAACD,EAAD,CAAf,EAAqB;EACnB,WAAO,QAAQA,EAAf;EACD;EACF,CALM;EAOA,MAAMC,WAAW,GAAIC,IAAD,IAAU;EACnC,QAAMC,OAAO,GAAG,0BAA0BC,IAA1B,CAA+BF,IAA/B,CAAhB;EACA,MAAIC,OAAO,IAAI,IAAf,EAAqB,OAAO,KAAP;EACrB,QAAME,CAAC,GAAGF,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMG,CAAC,GAAGH,OAAO,CAAC,CAAD,CAAP,GAAa,CAAvB;EACA,QAAMI,CAAC,GAAGJ,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMK,YAAY,GAAG,IAAIjD,IAAJ,CAASgD,CAAT,EAAYD,CAAZ,EAAeD,CAAf,CAArB,CANmC;;EAQnC,SAAOG,YAAY,CAACC,OAAb,MAA0BJ,CAA1B,IAA+BG,YAAY,CAAClB,QAAb,MAA2BgB,CAA1D,IAA+DE,YAAY,CAACnB,WAAb,MAA8BkB,CAApG;EACD,CATM;;ECdA,MAAMG,cAAN,CAAqB;EAC1B,SAAOC,IAAP,CAAalC,GAAb,EAAkBL,KAAlB,EAAyB;EACvB,QAAI,CAACK,GAAD,IAAQ,CAACL,KAAb,EAAoB;EAClB,aAAO,KAAP;EACD;;EACD,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACC,OAAb,CAAqBrC,GAArB,EAA0B,OAAOL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC2C,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAA9D;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO6C,IAAP,CAAaxC,GAAb,EAAkB;EAChB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAIyC,IAAI,GAAG,IAAX;;EACA,QAAI,KAAKN,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAGL,YAAY,CAACM,OAAb,CAAqB1C,GAArB,CAAP;EACD;;EACD,QAAIyC,IAAI,IAAI,IAAZ,EAAkB;EAChB,UAAI;EACFA,QAAAA,IAAI,GAAGH,IAAI,CAACK,KAAL,CAAWF,IAAX,CAAP;EACD,OAFD,CAEE,OAAOG,CAAP,EAAU;EACb;;EACD,WAAOH,IAAP;EACD;;EAED,SAAOI,MAAP,CAAe7C,GAAf,EAAoB;EAClB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAI,KAAKmC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACU,UAAb,CAAwB9C,GAAxB;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO+C,YAAP,CAAqBC,IAArB,EAA2BC,MAA3B,EAAmC;EACjC,QAAIC,SAAS,GAAGF,IAAI,GAAG,2CAAvB;;EAEA,QAAIC,MAAJ,EAAY;EACVC,MAAAA,SAAS,GAAGA,SAAS,GAAG,UAAZ,GAAyBD,MAAzB,GAAkC,UAA9C;EACD;;EAEDE,IAAAA,QAAQ,CAACC,MAAT,GAAkBF,SAAlB;EACD;;EAED,SAAOG,YAAP,CAAqBL,IAArB,EAA2BrD,KAA3B,EAAkC2D,OAAlC,EAA2CL,MAA3C,EAAmD;EACjD,QAAIM,OAAO,GAAG,EAAd;EACA,QAAIC,SAAS,GAAG,EAAhB;;EACA,QAAIF,OAAJ,EAAa;EACX,YAAM7B,IAAI,GAAG,IAAI3C,IAAJ,EAAb;EACA2C,MAAAA,IAAI,CAACgC,OAAL,CAAahC,IAAI,CAACP,OAAL,KAAkBoC,OAAO,GAAG,IAAzC;EAEAC,MAAAA,OAAO,GAAG,eAAe9B,IAAI,CAACiC,WAAL,EAAzB;EACD;;EAED,QAAIT,MAAJ,EAAY;EACVO,MAAAA,SAAS,GAAG,cAAcP,MAA1B;EACD;;EAEDtD,IAAAA,KAAK,GAAGgE,kBAAkB,CAAChE,KAAD,CAA1B;EAEAwD,IAAAA,QAAQ,CAACC,MAAT,GAAkBJ,IAAI,GAAG,GAAP,GAAarD,KAAb,GAAqB4D,OAArB,GAA+BC,SAA/B,GAA2C,UAA7D;EACD;;EAED,SAAOI,UAAP,CAAmBZ,IAAnB,EAAyB;EACvB,UAAMa,MAAM,GAAGb,IAAI,GAAG,GAAtB;EACA,UAAMc,EAAE,GAAGX,QAAQ,CAACC,MAAT,CAAgBW,KAAhB,CAAsB,GAAtB,CAAX;;EACA,SAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGF,EAAE,CAAC1D,MAA3B,EAAmC4D,GAAG,EAAtC,EAA0C;EACxC,UAAIC,CAAC,GAAGH,EAAE,CAACE,GAAD,CAAV;;EACA,aAAOC,CAAC,CAACC,MAAF,CAAS,CAAT,MAAgB,GAAvB,EAA4B;EAC1BD,QAAAA,CAAC,GAAGA,CAAC,CAAC5D,SAAF,CAAY,CAAZ,EAAe4D,CAAC,CAAC7D,MAAjB,CAAJ;EACD,OAJuC;;;EAMxC,UAAI6D,CAAC,CAACE,OAAF,CAAUN,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,eAAOO,kBAAkB,CAACH,CAAC,CAAC5D,SAAF,CAAYwD,MAAM,CAACzD,MAAnB,EAA2B6D,CAAC,CAAC7D,MAA7B,CAAD,CAAzB;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,SAAO+B,wBAAP,GAAmC;EACjC,WAAO,kBAAkBkC,MAAlB,IAA4BA,MAAM,CAACjC,YAAP,KAAwB,IAApD,IAA4D,OAAOiC,MAAM,CAACjC,YAAP,CAAoBC,OAA3B,KAAuC,UAA1G;EACD;;EAED,SAAOiC,gBAAP,CAAyBC,QAAzB,EAAmC5E,KAAnC,EAA0C;EACxC,QAAIA,KAAK,IAAI,IAAb,EAAmB;EACjB;EACD;;EACD,QAAI;EACF,UAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,aAAKD,IAAL,CAAUqC,QAAV,EAAoBZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAAtC;EACD,OAFD,MAEO;EACL,YAAI4E,QAAQ,KAAK3J,YAAjB,EAA+B;EAC7B,eAAKyI,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAAChE,KAAD,CAA9C,EAAuD,CAAvD,EAA0D0E,MAAM,CAACG,QAAP,CAAgBC,QAA1E;EACD,SAFD,MAEO;EACL,eAAKpB,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAA9C,EAAuE,CAAvE,EAA0E0E,MAAM,CAACG,QAAP,CAAgBC,QAA1F;EACD;EACF;;EACDC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACD,KAXD,CAWE,OAAOiD,CAAP,EAAU;EACb;;EAED,SAAOgC,kBAAP,CAA2BL,QAA3B,EAAqC;EACnC,QAAI9B,IAAJ;;EACA,QAAIiC,GAAG,CAACC,WAAJ,CAAgBzF,cAAhB,CAA+BqF,QAA/B,CAAJ,EAA8C;EAC5C,aAAOG,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,CAAP;EACD;;EACD,QAAI,KAAKpC,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAG,KAAKD,IAAL,CAAU+B,QAAV,CAAP;EACD,KAFD,MAEO;EACL9B,MAAAA,IAAI,GAAG,KAAKmB,UAAL,CAAgBW,QAAhB,CAAP;EACD;;EAED,QAAI9B,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK7C,SAA1B,IAAuC,EAAE,OAAO6C,IAAI,CAACoC,IAAZ,KAAqB,UAArB,IAAmCpC,IAAI,CAACoC,IAAL,OAAgB,EAArD,CAA3C,EAAqG;EACnG,UAAIlF,KAAJ;;EACA,UAAI;EACFA,QAAAA,KAAK,GAAG2C,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC3B,IAAD,CAA7B,CAAR;EACD,OAFD,CAEE,OAAOqC,GAAP,EAAY;EACZnF,QAAAA,KAAK,GAAGyE,kBAAkB,CAAC3B,IAAD,CAA1B;EACD;;EACDiC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACA,aAAOA,KAAP;EACD;EACF;;EAED,SAAOoF,iBAAP,CAA0B/B,IAA1B,EAAgCrD,KAAhC,EAAuC2D,OAAvC,EAAgDL,MAAhD,EAAwD;EACtD;EACA;EACA;EACA;EACA;EAEA,QAAIA,MAAJ,EAAY;EACV,UAAI+B,WAAW,GAAGN,GAAG,CAACM,WAAtB;;EACA,UAAIA,WAAW,IAAI,IAAnB,EAAyB;EAAE;EACzB,cAAMC,WAAW,GAAGhC,MAAM,CAACc,KAAP,CAAa,GAAb,CAApB;EACA,YAAImB,eAAe,GAAG,EAAtB;;EACA,aAAK,IAAIlB,GAAG,GAAGiB,WAAW,CAAC7E,MAAZ,GAAqB,CAApC,EAAuC4D,GAAG,IAAI,CAA9C,EAAiDA,GAAG,EAApD,EAAwD;EACtD,cAAIA,GAAG,KAAK,CAAZ,EAAe;EACbkB,YAAAA,eAAe,GAAGD,WAAW,CAACjB,GAAD,CAAX,GAAmBkB,eAArC;EACD,WAFD,MAEO;EACLA,YAAAA,eAAe,GAAG,MAAMD,WAAW,CAACjB,GAAD,CAAjB,GAAyBkB,eAA3C;EACD,WALqD;;;EAQtD,cAAI,KAAKtB,UAAL,CAAgBZ,IAAhB,CAAJ,EAA2B;EACzB;EACA,gBAAImC,cAAc,GAAG,UAAUnC,IAAV,GAAiBgB,GAAtC;EACA,iBAAKX,YAAL,CAAkB8B,cAAlB,EAAkCxF,KAAlC,EAAyC,EAAzC,EAA6CuF,eAA7C,EAHyB;;EAIzB,gBAAI,CAAC,KAAKtB,UAAL,CAAgBuB,cAAhB,CAAL,EAAsC;EAAE;EACtC;EACD,aAFD,MAEO;EAAE;EACP,mBAAKpC,YAAL,CAAkBoC,cAAlB,EAAkCD,eAAlC;EACD;EACF;;EAED,eAAK7B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC4B,eAAxC;EACA,gBAAME,UAAU,GAAG,KAAKxB,UAAL,CAAgBZ,IAAhB,CAAnB,CApBsD;;EAsBtD,cAAIoC,UAAU,IAAIzF,KAAlB,EAAyB;EACvBqF,YAAAA,WAAW,GAAGE,eAAd;EACAR,YAAAA,GAAG,CAACM,WAAJ,GAAkBA,WAAlB;EACA;EACD;EACF;EACF,OA/BD,MA+BO;EACL,aAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC0B,WAAxC;EACD;EACF,KApCD,MAoCO;EACL,WAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwCL,MAAxC;EACD;EACF;;EAED,SAAOoC,WAAP,CAAoBd,QAApB,EAA8B;EAC5B,UAAMe,OAAO,GAAG,KAAKV,kBAAL,CAAwBzJ,WAAxB,CAAhB;;EACA,QAAImK,OAAO,IAAI,IAAf,EAAqB;EACnB,aAAOA,OAAO,CAACf,QAAD,CAAd;EACD;EACF;;EAED,SAAOgB,WAAP,CAAoBhB,QAApB,EAA8B5E,KAA9B,EAAqC;EACnC,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,UAAIqD,WAAW,GAAG,KAAKZ,kBAAL,CAAwBzJ,WAAxB,CAAlB;;EACA,UAAIqK,WAAW,IAAI,IAAnB,EAAyB;EACvBA,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI7F,KAAK,KAAKC,SAAd,EAAyB;EACvB,eAAO4F,WAAW,CAACjB,QAAD,CAAlB;EACD,OAFD,MAEO;EACLiB,QAAAA,WAAW,CAACjB,QAAD,CAAX,GAAwB5E,KAAxB;EACD;;EACD,WAAK2E,gBAAL,CAAsBnJ,WAAtB,EAAmCqK,WAAnC;EACD;EACF;;EAED,SAAOC,mBAAP,CAA4BlB,QAA5B,EAAsC;EACpC,UAAM5E,KAAK,GAAG,KAAK0F,WAAL,CAAiBd,QAAjB,CAAd;EACA,SAAKgB,WAAL,CAAiBhB,QAAjB,EAA2B3E,SAA3B;EACA,WAAOD,KAAP;EACD;;EAED,SAAO+F,uBAAP,GAAkC;EAChC,QAAIC,CAAC,GAAG,KAAKf,kBAAL,CAAwB/J,YAAxB,CAAR;;EACA,QAAI8K,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACD;;EACDA,IAAAA,CAAC,CAACC,IAAF,GAAS,IAAT;EACA,SAAKtB,gBAAL,CAAsBzJ,YAAtB,EAAoC8K,CAApC;EACD;;EAED,SAAOE,WAAP,CAAoBpD,IAApB,EAA0BqD,KAA1B,EAAiC/F,MAAjC,EAAyC;EACvC,QAAIgG,SAAS,GAAG,KAAKnB,kBAAL,CAAwBrJ,YAAxB,CAAhB;;EACA,QAAI,OAAOwK,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,GAAG,EAAZ;EACD;;EACDA,IAAAA,SAAS,CAACD,KAAD,CAAT,GAAmB;EAAEE,MAAAA,CAAC,EAAEvD;EAAL,KAAnB;EACA,SAAK6B,gBAAL,CAAsB/I,YAAtB,EAAoCwK,SAApC;EACAhG,IAAAA,MAAM,CAACkG,KAAP,qBAA0B1K,YAA1B,sBAAkDuK,KAAlD,iBAA8DrD,IAA9D;EACD;;EAED,SAAOyD,YAAP,CAAqBC,MAArB,EAA6BpG,MAA7B,EAAqC;EACnC,UAAMqG,SAAS,GAAG,KAAKxB,kBAAL,CAAwBrJ,YAAxB,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAlD,IAA0D,OAAOA,SAAS,CAACD,MAAD,CAAhB,KAA6B,WAA3F,EAAwG;EACtGpG,MAAAA,MAAM,CAACkG,KAAP,sBAA2BE,MAA3B,qBAA4CC,SAAS,CAACD,MAAD,CAAT,CAAkBH,CAA9D;EACA,aAAOI,SAAS,CAACD,MAAD,CAAhB;EACA,WAAK7B,gBAAL,CAAsB/I,YAAtB,EAAoC6K,SAApC;EACD;EACF;;EArOyB;EAwOrB,MAAM1B,GAAG,GAAG;EACjBC,EAAAA,WAAW,EAAE;EACX0B,IAAAA,OAAO,EAAE,IADE;EAEXC,IAAAA,KAAK,EAAE,CAFI;EAGXC,IAAAA,MAAM,EAAE;EAHG,GADI;EAMjBxK,EAAAA,SAAS,EAAE,IANM;EAOjByK,EAAAA,gBAAgB,EAAE5G,SAPD;EAQjB6G,EAAAA,eAAe,EAAE7G,SARA;EASjB8G,EAAAA,YAAY,EAAE,KATG;EAUjBC,EAAAA,cAAc,EAAE,KAVC;EAWjB3B,EAAAA,WAAW,EAAE,IAXI;EAYjB4B,EAAAA,cAAc,EAAE,IAZC;EAajBC,EAAAA,cAAc,EAAE,EAbC;EAcjBC,EAAAA,gBAAgB,EAAE,IAdD;EAejBC,EAAAA,WAAW,EAAE,CAfI;EAeD;EAChBC,EAAAA,QAAQ,EAAE;EACRC,IAAAA,mBAAmB,EAAE;EADb,GAhBO;EAkBd;EACHC,EAAAA,WAAW,EAAE,EAnBI;EAoBjBC,EAAAA,mBAAmB,EAAE,IApBJ;EAqBjBC,EAAAA,KAAK,EAAE,IArBU;EAsBjBC,EAAAA,kBAAkB,EAAE,KAtBH;EAuBjBC,EAAAA,YAAY,EAAE,EAvBG;EAwBjBC,EAAAA,OAAO,EAAE,KAxBQ;EAyBjB/C,EAAAA,QAAQ,EAAE,IAzBO;EA0BjBgD,EAAAA,kBAAkB,EAAE,KA1BH;EA2BjBC,EAAAA,iBAAiB,EAAE,IA3BF;EA4BjBC,EAAAA,cAAc,EAAE,IA5BC;EA6BjBC,EAAAA,aAAa,EAAE,EA7BE;EA8BjBC,EAAAA,UAAU,EAAE,IA9BK;EAgCjB;;EAhCiB,CAAZ;;;;;;EC3OQ,MAAMC,QAAN,CAAe;EAG5BpO,EAAAA,WAAW,CAAEqO,GAAF,EAAO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAChB,SAAKA,GAAL,GAAWA,GAAX;EACA,QAAIC,QAAQ,GAAG9F,cAAc,CAAC2C,kBAAf,CAAkC7I,SAAlC,CAAf;;EACA,QAAIgM,QAAJ,EAAc;EACZ,YAAMC,YAAY,GAAG,EAArB;EACA,gEAAiB,EAAjB;EACAD,MAAAA,QAAQ,GAAGA,QAAQ,CAACE,KAApB;;EACA,WAAK,MAAMC,KAAX,IAAoBH,QAApB,EAA8B;EAC5B,YAAIA,QAAQ,CAAC7I,cAAT,CAAwBgJ,KAAxB,CAAJ,EAAoC;EAClCF,UAAAA,YAAY,CAACD,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAD,CAAZ,GAAmCH,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAnC;;EACA,kEAAeC,IAAf,CAAoBJ,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAApB;EACD;EACF;;EACD,WAAKD,KAAL,GAAaD,YAAb;EACD,KAXD,MAWO;EACL,WAAKC,KAAL,GAAa,EAAb;EACA,gEAAiB,EAAjB;EACD;EACF;;EAEDG,EAAAA,GAAG,CAAEpI,GAAF,EAAO;EACR,UAAMqI,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,QAAIqI,IAAJ,EAAU;EACR,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACA,WAAKA,KAAL,CAAWjI,GAAX,IAAkBqI,IAAlB;;EACA,8DAAeF,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACA,WAAOI,IAAP;EACD;;EAEDE,EAAAA,GAAG,CAAEvI,GAAF,EAAOL,KAAP,EAAc;EACf,UAAM0I,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,UAAMwI,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIH,IAAI,IAAI,IAAZ,EAAkB;EAChB,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACD,KAFD,MAEO,IAAIO,OAAO,CAACpI,MAAR,KAAmB,KAAK0H,GAA5B,EAAiC;EACtC,WAAKG,KAAL,+BAAa,IAAb,wCAAoCO,OAAO,CAAC,CAAD,CAA3C,EAAgD,KAAKP,KAArD;EACD;;EACD,SAAKA,KAAL,CAAWjI,GAAX,IAAkBL,KAAlB;;EACA,QAAI,wDAAe,0DAAiB,CAAhC,MAAuCK,GAA3C,EAAgD;EAC9C,8DAAemI,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACD;;EAEDK,EAAAA,aAAa,CAAEL,KAAF,EAAS;EACpB,UAAMQ,UAAU,GAAG,EAAnB;;EACA,UAAMD,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,cAAMC,IAAI,GAAG,EAAb;EACAA,QAAAA,IAAI,CAACR,IAAL,CAAUK,OAAO,CAACE,KAAD,CAAjB;EACAC,QAAAA,IAAI,CAACR,IAAL,CAAUF,KAAK,CAACO,OAAO,CAACE,KAAD,CAAR,CAAf;EACAD,QAAAA,UAAU,CAACN,IAAX,CAAgBQ,IAAhB;EACD;EACF;;EACD1G,IAAAA,cAAc,CAACqC,gBAAf,CAAgCvI,SAAhC,EAA2C;EAAEkM,MAAAA,KAAK,EAAEQ;EAAT,KAA3C;EACD;;EAEDG,EAAAA,MAAM,CAAEjJ,KAAF,EAAS;EACb,QAAIA,KAAK,KAAK,IAAd,EAAoB;EAClB,aAAO,IAAP;EACD;;EACD,UAAM6I,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,YAAI,KAAKT,KAAL,CAAWO,OAAO,CAACE,KAAD,CAAlB,MAA+B/I,KAAnC,EAA0C;EACxC,iBAAO6I,OAAO,CAACE,KAAD,CAAd;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EAEDG,EAAAA,gBAAgB,GAAI;EAClB,UAAMC,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIA,OAAO,IAAI,IAAX,IAAmBA,OAAO,CAAC1I,MAAR,GAAiB,CAAxC,EAA2C;EACzC,aAAO0I,OAAO,CAACA,OAAO,CAAC1I,MAAR,GAAiB,CAAlB,CAAd;EACD;;EACD,WAAO,CAAC,CAAR;EACD;;EAED2I,EAAAA,UAAU,GAAI;EACZ,UAAMC,UAAU,GAAG,wDAAe5I,MAAlC;;EACA,QAAI4I,UAAJ,EAAgB;EACd,aAAO,wDAAeA,UAAU,GAAG,CAA5B,CAAP;EACD;EACF;;EA3F2B;;uDA6FThJ,KAAKhB,KAAK;EAC3B,QAAMwJ,OAAO,GAAGlG,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,6BAAe,IAAf,wBAAX,CAAhB;EACA,QAAM0G,QAAQ,GAAG,EAAjB;EACA,MAAIC,aAAJ;;EACA,OAAK,MAAMR,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,QAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,UAAIF,OAAO,CAACE,KAAD,CAAP,KAAmB1I,GAAvB,EAA4B;EAC1BiJ,QAAAA,QAAQ,CAACT,OAAO,CAACE,KAAD,CAAR,CAAR,GAA2B1J,GAAG,CAACwJ,OAAO,CAACE,KAAD,CAAR,CAA9B;EACD,OAFD,MAEO;EACLQ,QAAAA,aAAa,GAAGR,KAAhB;EACD;EACF;EACF;;EACDF,EAAAA,OAAO,CAACW,MAAR,CAAeD,aAAf,EAA8B,CAA9B;EACA,4DAAiB5G,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeiG,OAAf,CAAX,CAAjB;EACA,SAAOS,QAAP;EACD;;;;;;;;;;EC1GY,MAAMG,YAAN,CAAmB;EAMhC3P,EAAAA,WAAW,OAAwC;EAAA,QAAtC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBC,MAAAA,MAAnB;EAA2BC,MAAAA;EAA3B,KAAsC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EACjD,0DAAexJ,MAAf;EACA,4DAAgBsJ,OAAhB;EACA,0DAAeC,MAAf;EACA,4DAAgBC,OAAhB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEEC,EAAAA,CAAC,CAAEC,MAAF,EAAUF,OAAV,EAAmBG,MAAnB,EAA2BC,UAA3B,EAAuCC,cAAvC,EAAuD;EACtD,QAAIC,MAAM,GAAG,KAAb;EACA,QAAIC,OAAO,GAAG,KAAd,CAFsD;EAKtD;EACA;EACA;;EACA,QAAIzF,MAAM,CAAC0F,eAAX,EAA4B;EAC1B,UAAIL,MAAM,IAAKC,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAKtF,MAAM,CAAC2F,OAAnE,EAA6E;EAC3E3F,QAAAA,MAAM,CAAC0F,eAAP,GAAyB,KAAzB;EACAF,QAAAA,MAAM,GAAG,IAAT;EACD;EACF,KAbqD;;;EAgBtD,QAAI,OAAOF,UAAP,KAAsB,WAA1B,EAAuC;EACrCA,MAAAA,UAAU,GAAG,CAAb;EACD;;EAED1H,IAAAA,cAAc,CAACiE,YAAf,CAA4ByD,UAA5B,8BAAwC,IAAxC;;EAEA,QAAIA,UAAU,GAAGjF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC,EAAwC;EACtC;EACA;EACD;;EAED,QAAI,CAAC5G,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC,UAAIoD,MAAJ,EAAY;EACVK,QAAAA,OAAO,GAAG,IAAV;EACD;EACF;;EAED,QAAI,CAACpK,YAAY,CAAC,oDAAa2G,OAAd,CAAb,IAAuCqD,MAAvC,IAAiD,OAAOE,cAAP,KAA0B,SAA/E,EAA0F;EACxF,YAAMK,UAAU,GAAG,sDAAcC,sBAAd,EAAnB;EAEA;EACN;EACA;;;EACM,UAAI7F,MAAM,CAAC0F,eAAP,IAA2BE,UAAU,CAACT,CAAX,IAAiBD,OAAO,GAAGU,UAAU,CAACT,CAArE,EAA0E;EACxE;EACD;;EACD,0DAAavD,KAAb,sBAAiC,oDAAaI,OAA9C,qBAAgEoD,MAAhE;;EACA,0DAAapD,OAAb,GAAuBoD,MAAvB;;EACA,UAAI,CAAC/J,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC;EACApE,QAAAA,cAAc,CAACwD,mBAAf,CAAmC3J,SAAnC;EACD;;EACD,UAAI2N,MAAM,IAAIxH,cAAc,CAACE,wBAAf,EAAd,EAAyD;EACvD,YAAIuC,GAAG,CAAC3I,SAAJ,IAAiB,IAArB,EAA2B;EACzB2I,UAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,cAAMmO,SAAS,GAAGlI,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAlB;EACA,YAAIuP,gBAAJ;;EACA,YAAID,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACzQ,EAAnC,EAAuC;EACrC0Q,UAAAA,gBAAgB,GAAG1F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBkC,SAAS,CAACzQ,EAA9B,CAAnB;;EACA,cAAIgQ,MAAJ,EAAY;EACV,gBAAI,CAACU,gBAAL,EAAuB;EACrBnI,cAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,IAAxD,EADqB;EAGrB;;EACA4H,cAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkB4B,SAAS,CAACzQ,EAA5B,EAAgC+P,MAAhC;EACD;EACF;EACF;;EAEDxH,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C,EAnBuD;;EAqBvD,cAAMY,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB,CAD6E;EAG7E;;EACA,gEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF;;EACDrI,MAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+C6O,MAA/C,EAAuDrN,aAAvD,EAAsEiI,MAAM,CAACG,QAAP,CAAgBC,QAAtF;EACAxC,MAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C;EACD;;EAED,QAAIxH,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,4DAAcqI,aAAd,CAA4BjB,OAA5B;EACD,KAnFqD;;;EAsFtD,UAAMvK,GAAG,GAAG,sDAAckL,sBAAd,EAAZ,CAtFsD;;;EAyFtD,QAAI,OAAOlL,GAAG,CAACwK,CAAX,KAAiB,WAAjB,IAAgCxK,GAAG,CAACwK,CAAJ,IAASD,OAA7C,EAAsD;EACpDvK,MAAAA,GAAG,CAACwK,CAAJ,GAAQD,OAAR;EACAvK,MAAAA,GAAG,CAACyL,CAAJ,GAAQ1J,MAAM,EAAd,CAFoD;;EAGpD,4DAAc2J,sBAAd,CAAqC1L,GAArC;EACD,KA7FqD;;;EAgGtD,QAAIU,YAAY,CAAC,oDAAa2G,OAAd,CAAhB,EAAwC;EACtC3B,MAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD,KAlGqD;;;EAqGtD,QAAI,CAACmD,MAAM,IAAIC,OAAX,KAAuB,CAAC,sDAAca,gBAA1C,EAA4D;EAC1D,4DAAcC,mBAAd;EACD;;EAEDlG,IAAAA,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyBoD,UAAzB;EACD;;EAjI+B;;;;ECFnB,MAAMkB,aAAN,CAAoB;EAIjCpR,EAAAA,WAAW,OAAc;EAAA,QAAZ;EAAEsG,MAAAA;EAAF,KAAY;EAAA;EAAA;EAAA;EAAA;EAAA,SAFzBsG,OAEyB;EACvB,8DAAetG,MAAf;EACA,SAAKsG,OAAL,GAAe,KAAKyE,OAAL,EAAf;EACD;;EAEDA,EAAAA,OAAO,GAAI;EACT,QAAIC,IAAI,GAAG,IAAX;;EACA,QAAIrL,YAAY,CAAC,KAAK2G,OAAN,CAAhB,EAAgC;EAC9B,aAAO,KAAKA,OAAZ;EACD;;EACD,QAAIpE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMxC,KAAK,GAAGsC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAd;;EACA,UAAI8E,YAAY,CAACC,KAAD,CAAhB,EAAyB;EACvB,YAAI;EACFoL,UAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACzE,KAAD,CAA7B,CAAP;EACD,SAFD,CAEE,OAAOiD,CAAP,EAAU;EACV,kEAAaqD,KAAb,CAAmB,8DAA8DtG,KAAjF,EADU;EAGV;EACA;EACA;;;EACA,cAAIA,KAAK,CAACS,MAAN,KAAiB,EAArB,EAAyB;EACvB2K,YAAAA,IAAI,GAAGpL,KAAP;EACAsC,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C+E,KAA9C;EACD,WAHD,MAGO;EACL,oEAAaqL,KAAb,CAAmB,kBAAkBrL,KAArC;EACD;EACF,SAfsB;;;EAkBvB,YAAID,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,UAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+CmQ,IAA/C,EAAqD3O,aAArD,EAAoEiI,MAAM,CAACG,QAAP,CAAgBC,QAApF;EACD;EACF;EACF;;EAED,QAAI,CAAC/E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EACvBA,MAAAA,IAAI,GAAG9I,cAAc,CAAC2B,UAAf,CAA0BhJ,YAA1B,CAAP;;EACA,UAAI8E,YAAY,CAACqL,IAAD,CAAZ,KAAuBA,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAAtB,IAA2B4G,IAAI,CAAC5G,OAAL,CAAa,IAAb,MAAuB,CAAlD,IAAuD4G,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAApG,CAAJ,EAA4G;EAC1G4G,QAAAA,IAAI,GAAG,IAAP;EACD;;EACD,UAAIrL,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CmQ,IAA9C;EACD;EACF;;EAED,WAAOA,IAAP;EACD;;EAnDgC;;ECJ5B,MAAME,kBAAkB,GAAG,iCAA3B;EAGA,MAAMC,sBAAsB,GAAG,kBAA/B;;EACA,MAAMC,WAAW,aAAMD,sBAAN,6BAAjB;EACA,MAAME,WAAW,aAAMF,sBAAN,yCAA2DD,kBAA3D,CAAjB;EACA,MAAMI,YAAY,aAAMH,sBAAN,+GAAiID,kBAAjI,CAAlB;EACA,MAAMK,cAAc,aAAMJ,sBAAN,sDAAwED,kBAAxE,CAApB;EACA,MAAMM,aAAa,aAAML,sBAAN,qDAAuED,kBAAvE,CAAnB;EACA,MAAMO,eAAe,aAAMN,sBAAN,4EAA8FD,kBAA9F,CAArB;EACA,MAAMQ,SAAS,aAAMP,sBAAN,4CAA8DD,kBAA9D,CAAf;EACA,MAAMS,SAAS,aAAMR,sBAAN,uCAAf;EAGA,MAAMS,iBAAiB,aAAMT,sBAAN,0DAAvB;EACA,MAAMU,kBAAkB,aAAMV,sBAAN,iEAAxB;;ECVP,IAAIW,gBAAJ;;EAEO,MAAMC,oBAAoB,GAAIC,QAAD,IAAc;EAChD;EACA,MAAIvN,QAAQ,CAACuN,QAAD,CAAZ,EAAwB;EACtB,SAAK,IAAI/L,GAAT,IAAgB+L,QAAhB,EAA0B;EACxB,UAAIA,QAAQ,CAAC7M,cAAT,CAAwBc,GAAxB,CAAJ,EAAkC;EAChC,YAAIxB,QAAQ,CAACuN,QAAQ,CAAC/L,GAAD,CAAT,CAAR,IAA2BgM,KAAK,CAACC,OAAN,CAAcF,QAAQ,CAAC/L,GAAD,CAAtB,CAA/B,EAA6D;EAC3D,iBAAO,KAAP;EACD,SAFD,MAEO,IAAInB,YAAY,CAACkN,QAAQ,CAAC/L,GAAD,CAAT,CAAhB,EAAiC;EACtC+L,UAAAA,QAAQ,CAAC/L,GAAD,CAAR,GAAgBmB,iBAAiB,CAAC4K,QAAQ,CAAC/L,GAAD,CAAT,CAAjC;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EACD,SAAO,KAAP;EACD,CAfM;EAiBA,MAAMkM,4BAA4B,GAAG,CAACC,UAAD,EAAapM,MAAb,KAAwB;EAClE,MAAIvB,QAAQ,CAAC2N,UAAD,CAAZ,EAA0B;EACxB,SAAK,IAAInM,GAAT,IAAgBmM,UAAhB,EAA4B;EAC1B,UAAIA,UAAU,CAACjN,cAAX,CAA0Bc,GAA1B,CAAJ,EAAoC;EAClC,YAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,cAAI,CAACgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAL,EAAqC;EACnC,mBAAO,KAAP;EACD;;EAED,cAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAAhB,GAAyB,EAA7B,EAAiC;EAC/BL,YAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwB,kDAAkD6L,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAA1F;EACD;;EAED,eAAK,IAAIgM,OAAT,IAAoBD,UAAU,CAACnM,GAAD,CAA9B,EAAqC;EACnC,gBAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBd,cAAhB,CAA+BkN,OAA/B,CAAJ,EAA6C;EAAE;EAC7C,kBAAI,CAAC5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAT,IAAuC,CAACN,oBAAoB,CAACK,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAhE,EAA4F;EAC1F,uBAAO,KAAP;EACD;EACF;EACF;EACF,SAhBD,MAgBO;EACL,cAAI5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAX,CAAR,IAA6BgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAjC,EAAiE;EAC/D,mBAAO,KAAP;EACD,WAFD,MAEO,IAAInB,YAAY,CAACsN,UAAU,CAACnM,GAAD,CAAX,CAAhB,EAAmC;EACxCmM,YAAAA,UAAU,CAACnM,GAAD,CAAV,GAAkBmB,iBAAiB,CAACgL,UAAU,CAACnM,GAAD,CAAX,CAAnC;EACD;EACF;EACF;EACF;;EAED,QAAI3B,QAAQ,CAAC8N,UAAU,CAACzR,UAAD,CAAX,CAAR,IAAoC8E,QAAQ,CAAC2M,UAAU,CAACzR,UAAD,CAAX,CAAhD,EAA0E;EACxE;EACA,YAAM2R,SAAS,GAAGF,UAAU,CAACzR,UAAD,CAAV,GAAyB,EAA3C,CAFwE;;EAIxE,UAAI,OAAOmR,gBAAP,KAA4B,WAAhC,EAA6C;EAC3CA,QAAAA,gBAAgB,GAAG5J,cAAc,CAAC2C,kBAAf,CAAkCjK,qBAAlC,CAAnB;EACD;;EACD,UAAI,OAAOkR,gBAAP,KAA4B,WAA5B,IAA2CA,gBAAgB,CAAChH,IAAjB,OAA4BwH,SAAS,CAACxH,IAAV,EAA3E,EAA6F;EAC3F;EACA9E,QAAAA,MAAM,CAACiL,KAAP,CAAa,mCAAmCmB,UAAhD;EACA,eAAO,KAAP;EACD;;EACDN,MAAAA,gBAAgB,GAAGQ,SAAnB;EACApK,MAAAA,cAAc,CAACqC,gBAAf,CAAgC3J,qBAAhC,EAAuD0R,SAAvD;EACD;;EACD,WAAO,IAAP;EACD,GA9CiE;;;EA+ClE,SAAO,KAAP;EACD,CAhDM;;;;;;;;;;;;EClBQ,MAAMC,YAAN,SAA2BN,KAA3B,CAAiC;EAM9CvS,EAAAA,WAAW,OAAgD8S,MAAhD,EAAwD;EAAA,QAAtD;EAAExM,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBmD,MAAAA;EAAnB,KAAsD;EACjE;EADiE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEjE,8DAAezM,MAAf;EACA,gEAAkBwM,MAAlB;EACA,gEAAgBlD,OAAhB;EACA,4FAAgCmD,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAgB;EAClB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CoR,SAC4C;EAD5CA,QAAAA,SAC4C;EAAA;;EACjD,gFAAwBA,SAAxB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAazB,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,2BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,gEAAkB,IAAlB;EACD;;EAoDDC,EAAAA,UAAU,CAAEC,OAAF,EAAW;EACnB,QAAI,6BAAC,IAAD,uDAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,OAAOlI,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;EACD;;EACD,QAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C;EACD;;EACD,UAAMoG,MAAM,GAAGnI,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAf;EACA,UAAME,OAAO,GAAG,EAAhB;;EACA,QAAI,OAAOD,MAAP,KAAkB,WAAtB,EAAmC;EACjCC,MAAAA,OAAO,CAACC,SAAR,GAAoB,IAAIjO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAApB;EACAC,MAAAA,OAAO,CAACE,QAAR,GAAmB,IAAIlO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAAnB;EACAC,MAAAA,OAAO,CAACG,KAAR,GAAgBJ,MAAM,CAAC,CAAD,CAAtB;EACA,aAAOC,OAAP;EACD;EACF;;EAlG6C;;yDA8B1BL,WAAW;EAC7B,MAAIT,KAAK,CAACC,OAAN,CAAcQ,SAAd,CAAJ,EAA8B;EAC5B,WAAOA,SAAS,CAACrM,MAAV,GAAmB,CAA1B,EAA6B;EAC3B,UAAI8M,SAAS,GAAGT,SAAS,CAACU,KAAV,EAAhB;;EACA,UAAI,CAAC9O,QAAQ,CAAC6O,SAAD,CAAb,EAA0B;EACxB,gEAAalC,KAAb,CAAmBI,WAAnB;;EACA;EACD;;EAED,UAAI8B,SAAS,CAAC9M,MAAV,GAAmB,IAAvB,EAA6B;EAC3B8M,QAAAA,SAAS,GAAGA,SAAS,CAAC7M,SAAV,CAAoB,CAApB,EAAuB,IAAvB,CAAZ;;EACA,gEAAaC,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,0CAA1C;EACD;;EAED,UAAI9O,aAAa,CAACgP,QAAd,CAAuBF,SAAvB,CAAJ,EAAuC;EACrC,gEAAa5M,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,oEAA1C;;EACA;EACD;;EAED,YAAMzK,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAezM,QAAQ,CAAC+M,SAAD,EAAY7S,uBAAZ,CAAvB;;EAEA,UAAIoS,SAAS,CAACrM,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,cAAM2L,QAAQ,GAAGU,SAAS,CAACU,KAAV,EAAjB;;EACA,YAAI,CAAC3O,QAAQ,CAACuN,QAAD,CAAb,EAAyB;EACvB;EACAU,UAAAA,SAAS,CAACa,OAAV,CAAkBvB,QAAlB;EACD,SAHD,MAGO;EACL;EACA,cAAImB,SAAS,KAAK,SAAlB,EAA6B;EAC3B,gBAAI,CAAChB,4BAA4B,CAACH,QAAD,8BAAW,IAAX,wBAAjC,EAA2D;EACzD,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B,4CAA9B;;EACA;EACD;EACF,WALD,MAKO;EACL,gBAAI,CAACwL,oBAAoB,CAACC,QAAD,CAAzB,EAAqC;EACnC,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,qCAA1C;;EACA;EACD;EACF;;EACDzK,UAAAA,IAAI,CAAC8K,OAAL,GAAexB,QAAf;EACD;EACF;;EAED,gEAAcyB,YAAd,CAA2B/K,IAA3B;EACD;EACF;EACF;;ECpFI,MAAMgL,YAAY,GAAIC,GAAD,IAAS;EACnC,QAAMC,SAAS,GAAG,EAAlB;EACA,QAAM3J,GAAG,GAAG0J,GAAG,CAACvJ,OAAJ,CAAY,GAAZ,CAAZ;;EAEA,MAAIH,GAAG,GAAG,CAAV,EAAa;EACX,UAAM4J,GAAG,GAAGF,GAAG,CAACrN,SAAJ,CAAc2D,GAAG,GAAG,CAApB,CAAZ;EACA,QAAI6J,KAAJ;EACA,UAAMC,EAAE,GAAG,KAAX,CAHW;;EAIX,UAAMC,MAAM,GAAG,oBAAf;;EACA,UAAMC,MAAM,GAAG,UAAUxE,CAAV,EAAa;EAC1B,UAAIyE,WAAW,GAAGzE,CAAC,CAAC/I,OAAF,CAAUqN,EAAV,EAAc,GAAd,CAAlB;;EACA,UAAI;EACFG,QAAAA,WAAW,GAAG7J,kBAAkB,CAAC6J,WAAD,CAAhC;EACD,OAFD,CAEE,OAAOrL,CAAP,EAAU;EAEX;;EACD,aAAOqL,WAAP;EACD,KARD;;EASAJ,IAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;;EACA,WAAOC,KAAP,EAAc;EACZF,MAAAA,SAAS,CAACK,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAAP,CAAT,GAA8BG,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAApC;EACAA,MAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;EACD;EACF;;EACD,SAAOD,SAAP;EACD,CAzBM;EA2BA,MAAMO,SAAS,GAAIR,GAAD,IAAS;EAChC,MAAIA,GAAG,KAAK,EAAZ,EAAgB,OAAO,EAAP;EAChB,MAAIS,CAAC,GAAGhL,QAAQ,CAACiL,aAAT,CAAuB,GAAvB,CAAR;EACAD,EAAAA,CAAC,CAACE,IAAF,GAASX,GAAT;EACA,SAAOS,CAAC,CAAC1J,QAAT;EACD,CALM;EAOA,MAAM6J,QAAQ,GAAG,CAACZ,GAAD,EAAM/H,CAAN,EAAS4I,CAAT,KAAe;EACrC,SAAOb,GAAG,GAAG,GAAN,GAAY/H,CAAZ,GAAgB,GAAhB,GAAsBhC,kBAAkB,CAAC4K,CAAD,CAA/C;EACD,CAFM;EAIA,MAAMC,WAAW,GAAG,MAAM;EAC/B,SAAOnK,MAAM,CAACG,QAAP,CAAgBC,QAAvB;EACD,CAFM;;ECtCP;EACO,MAAMgK,qBAAqB,GAAIC,YAAD,IAAkB;EACrD,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,CAAC,IAAIF,YAAY,CAACtO,MAAb,GAAsB,CAA3B,IAAgC,CAA3C,CAAd;EACA,MAAIyO,MAAM,GAAG,CAACH,YAAY,GAAGC,OAAhB,EACRlO,OADQ,CACA,KADA,EACO,GADP,EAERA,OAFQ,CAEA,IAFA,EAEM,GAFN,CAAb;EAIA,MAAIqO,OAAO,GAAGzK,MAAM,CAAC0K,IAAP,CAAYF,MAAZ,CAAd;EACA,MAAIG,aAAa,GAAG,EAApB;;EACA,OAAK,IAAIC,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACH,OAAO,CAAC1O,MAAxB,EAAgC6O,CAAC,EAAjC,EAAqC;EACnCD,IAAAA,aAAa,CAAC7G,IAAd,CAAmB2G,OAAO,CAACI,UAAR,CAAmBD,CAAnB,CAAnB;EACD;;EACD,SAAO,IAAIE,UAAJ,CAAeH,aAAf,CAAP;EACD,CAZM;EAcA,MAAMI,YAAY,GAAG,CAACC,UAAD,EAAatP,MAAb,KAAwB;EAClDA,EAAAA,MAAM,IAAI,OAAOA,MAAM,CAACkG,KAAd,KAAwB,UAAlC,IAAgDlG,MAAM,CAACkG,KAAP,CAAa,UAAUoJ,UAAvB,CAAhD;EACA,SAAOC,gBAAgB,CAACD,UAAD,CAAvB;EACD,CAHM;EAKA,MAAME,QAAQ,GAAIC,YAAD,IAAkB;EACxC,MAAIA,YAAY,IAAI,IAApB,EAA0B,OAAO,EAAP;EAC1B,MAAIP,CAAJ;EAAA,MAAOtP,KAAP;EAAA,MACI8P,kBAAkB,GAAG,EADzB;EAAA,MAEIC,0BAA0B,GAAG,EAFjC;EAAA,MAGIC,SAAS,GAAG,EAHhB;EAAA,MAIIC,UAAU,GAAG,EAJjB;EAAA,MAKIC,SAAS,GAAG,EALhB;EAAA,MAMIC,iBAAiB,GAAG,CANxB;EAAA;EAOIC,EAAAA,gBAAgB,GAAG,CAPvB;EAAA,MAQIC,eAAe,GAAG,CARtB;EAAA,MASIC,mBAAmB,GAAG,EAT1B;EAAA,MAUIC,gBAAgB,GAAG,CAVvB;EAAA,MAWIC,qBAAqB,GAAG,CAX5B;EAAA,MAYIC,EAZJ;EAAA,MAaIC,CAAC,GAAG9R,MAAM,CAAC+R,YAbf;;EAeA,OAAKF,EAAE,GAAG,CAAV,EAAaA,EAAE,GAAGZ,YAAY,CAACpP,MAA/B,EAAuCgQ,EAAE,IAAI,CAA7C,EAAgD;EAC9CT,IAAAA,SAAS,GAAGH,YAAY,CAACtL,MAAb,CAAoBkM,EAApB,CAAZ;;EACA,QAAI,CAAC3R,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDE,SAAzD,CAAL,EAA0E;EACxEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB,GAAgCI,gBAAgB,EAAhD;EACAL,MAAAA,0BAA0B,CAACC,SAAD,CAA1B,GAAwC,IAAxC;EACD;;EAEDC,IAAAA,UAAU,GAAGC,SAAS,GAAGF,SAAzB;;EACA,QAAIlR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDG,UAAzD,CAAJ,EAA0E;EACxEC,MAAAA,SAAS,GAAGD,UAAZ;EACD,KAFD,MAEO;EACL,UAAInR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,YAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,gBAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;EACF;;EACDxQ,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,SAvBD,MAuBO;EACLA,UAAAA,KAAK,GAAG,CAAR;;EACA,eAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,QAAAA,iBAAiB;;EACjB,YAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,UAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,UAAAA,eAAe;EAChB;;EACD,eAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,OAxDD,MAwDO;EACLlQ,QAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,aAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB,OA7EI;;;EA+ELP,MAAAA,kBAAkB,CAACG,UAAD,CAAlB,GAAiCG,gBAAgB,EAAjD;EACAF,MAAAA,SAAS,GAAGtR,MAAM,CAACoR,SAAD,CAAlB;EACD;EACF,GA7GuC;;;EAgHxC,MAAIE,SAAS,KAAK,EAAlB,EAAsB;EACpB,QAAIpR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,UAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,cAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;EACF;;EACDxQ,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,OAvBD,MAuBO;EACLA,QAAAA,KAAK,GAAG,CAAR;;EACA,aAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB;;EACD,aAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,KAxDD,MAwDO;EACLlQ,MAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,WAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,QAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,YAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,UAAAA,qBAAqB,GAAG,CAAxB;EACAF,UAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,UAAAA,gBAAgB,GAAG,CAAnB;EACD,SAJD,MAIO;EACLC,UAAAA,qBAAqB;EACtB;;EACDxQ,QAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,IAAAA,iBAAiB;;EACjB,QAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,MAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,MAAAA,eAAe;EAChB;EACF,GA9LuC;;;EAiMxCrQ,EAAAA,KAAK,GAAG,CAAR;;EACA,OAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,QAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,MAAAA,qBAAqB,GAAG,CAAxB;EACAF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,MAAAA,gBAAgB,GAAG,CAAnB;EACD,KAJD,MAIO;EACLC,MAAAA,qBAAqB;EACtB;;EACDxQ,IAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD,GA5MuC;;;EA+MxC,SAAO,IAAP,EAAa;EACXuQ,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,QAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACA;EACD,KAHD,MAGOC,qBAAqB;EAC7B;;EACD,SAAOF,mBAAP;EACD,CAvNM;EAyNA,MAAMO,SAAS,GAAG,MAAM;EAC7B,MAAIxQ,GAAG,GAAG,EAAV;EACA,MAAIiP,CAAC,GAAG,CAAR;;EAEA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGiP,CAAZ;EACD;;EAED,SAAOjP,GAAG,GAAG,KAAb;EACD,CAjBM;;EAmBP,MAAMyQ,OAAO,GAAGD,SAAS,EAAzB;EAgDO,MAAMlB,gBAAgB,GAAIhR,KAAD,IAAW;EACzC,MAAIA,KAAK,IAAI,IAAb,EAAmB,OAAO,EAAP;EACnB,MAAIoS,MAAM,GAAG,EAAb;EACA,MAAIC,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,IAAxC;EACA,MAAIhC,CAAC,GAAG,CAAR;EAEA3Q,EAAAA,KAAK,GAAGiR,QAAQ,CAACjR,KAAD,CAAhB;;EAEA,SAAO2Q,CAAC,GAAG3Q,KAAK,CAAC8B,MAAN,GAAe,CAA1B,EAA6B;EAE3B,QAAI6O,CAAC,GAAG,CAAJ,IAAS,CAAb,EAAgB;EACd0B,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,KAA2B,CAAlC;EACA2B,MAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,IAA0B,GAAjC;EACA,UAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAY3Q,KAAK,CAAC8B,MAAtB,EACEyQ,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAAJ,GAAQ,CAAzB,KAA+B,CAAtC,CADF,KAGE4B,IAAI,GAAGK,GAAP;EACH,KAPD,MAOO;EACLP,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;;EACA,UAAI,CAACA,CAAC,GAAG,CAAL,IAAU,CAAV,GAAc3Q,KAAK,CAAC8B,MAAxB,EAAgC;EAC9BwQ,QAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,KAAiC,CAAxC;EACA4B,QAAAA,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;EACD,OAHD,MAIE2B,IAAI,GAAGC,IAAI,GAAGK,GAAd;EACH;;EACDjC,IAAAA,CAAC,IAAI,CAAL;EAEA6B,IAAAA,IAAI,GAAGH,IAAI,IAAI,CAAf;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,CAAR,KAAc,CAAf,GAAqBC,IAAI,IAAI,CAApC;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,EAAR,KAAe,CAAhB,GAAsBC,IAAI,IAAI,CAArC;EACAI,IAAAA,IAAI,GAAGJ,IAAI,GAAG,EAAd;;EAEA,QAAIxR,KAAK,CAACuR,IAAD,CAAT,EAAiB;EACfI,MAAAA,IAAI,GAAGC,IAAI,GAAG,EAAd;EACD,KAFD,MAEO,IAAI5R,KAAK,CAACwR,IAAD,CAAT,EAAiB;EACtBI,MAAAA,IAAI,GAAG,EAAP;EACD;;EAEDP,IAAAA,MAAM,GAAGA,MAAM,GACbD,OAAO,CAACvM,MAAR,CAAe4M,IAAf,CADO,GACgBL,OAAO,CAACvM,MAAR,CAAe6M,IAAf,CADhB,GAEPN,OAAO,CAACvM,MAAR,CAAe8M,IAAf,CAFO,GAEgBP,OAAO,CAACvM,MAAR,CAAe+M,IAAf,CAFzB;EAID;;EAED,SAAOP,MAAP;EACD,CA7CM;;;;;;;;;;ECzSQ,MAAMS,iBAAN,CAAwB;EAAA;EAAA,SAIrCC,iBAJqC,GAIjB,CAJiB;EAAA,SAKrCC,iBALqC,GAKjB,CALiB;EAAA;;EAuFrC;EACF;EACA;EACA;EACA;EACA;EACE,SAAOC,WAAP,CAAoB5D,GAApB,EAAyB6D,OAAzB,EAAkCC,WAAlC,EAA+C5E,OAA/C,EAAwD;EACtD,kEAAkBc,GAAlB,EAAuB,CAAvB,EAA0B6D,OAA1B,EAAmCC,WAAnC,EAAgD5E,OAAhD;EACD;;EA8BD6E,EAAAA,iBAAiB,GAAI;EACnB,SAAK1R,MAAL,CAAYkG,KAAZ,CAAkB,oBAAoB,KAAKmL,iBAA3C,EADmB;;EAInB,QAAI,KAAKA,iBAAL,GAAyB,EAA7B,EAAiC;EAC/B,WAAKrR,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,sBAAsB,KAAK0X,iBAA3B,GAA+C,iCAAlF;EACA,WAAKC,iBAAL,GAAyB3T,aAAzB,CAF+B;;EAG/B,aAAO,KAAK2T,iBAAZ;EACD;;EAED,QAAI,KAAKK,OAAL,CAAa/X,MAAb,IAAuB,IAA3B,EAAiC;EAC/B;EACA,WAAKoG,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,+BAAnC;EACA,aAAOgE,aAAP;EACD,KAJD,MAIO;EACL;EACA,YAAMiU,WAAW,GAAG,CAAC3Q,IAAI,CAACC,KAAL,CAAWD,IAAI,CAAC4Q,MAAL,KAAgB,EAA3B,IAAiC,CAAlC,IAAuC,IAA3D;EACA,WAAKP,iBAAL,IAA0BM,WAA1B;;EACA,UAAI,KAAKN,iBAAL,GAAyB1T,mBAA7B,EAAkD;EAChD,aAAKoC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,eAAO,KAAKA,iBAAZ;EACD,OAHD,MAGO;EACL,aAAKA,iBAAL,GAAyB3T,aAAzB;EACD;;EACD,WAAKqC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,aAAO,KAAKA,iBAAZ;EACD;EACF;;EAxJoC;;qDAiHZ3D,KAAKmE,YAAY;EACxC,MAAIA,UAAU,KAAK,IAAnB,EAAyB;EACvB,UAAMC,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAACD,UAAL,GAAkB,IAAlB;EACA,WAAOvD,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeuP,IAAf,CAAD,EAAuB,KAAK/R,MAA5B,CAAzB,CAAf;EACD;;EACD,MAAIkC,cAAc,CAACE,wBAAf,MAA6C,OAAOC,YAAY,CAACM,OAAb,CAAqBpH,UAArB,CAAP,KAA4C,WAAzF,IAAwG8G,YAAY,CAACM,OAAb,CAAqBpH,UAArB,MAAqC,IAAjJ,EAAuJ;EACrJ,WAAOgT,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeN,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAAf,CAAD,EAAgE,KAAKyE,MAArE,CAAzB,CAAf;EACD;;EACD,SAAO2N,GAAP;EACD;;yDAlB0BqE,aAAa;EACtC,MAAIC,KAAK,GAAG/P,cAAc,CAACoD,WAAf,CAA2BvJ,SAA3B,CAAZ;;EACA,MAAI,OAAOkW,KAAP,KAAiB,SAArB,EAAgC;EAC9BA,IAAAA,KAAK,GAAG,KAAR;EACD;;EACD,SAAO1D,QAAQ,CAACyD,WAAD,EAAcjW,SAAd,EAAyBkW,KAAK,GAAG,MAAH,GAAY,OAA1C,CAAf;EACD;;qEAdiC;EAChC,MAAItN,GAAG,CAACiC,cAAJ,IAAsB,CAACjH,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAnC,IAA4D,CAAChI,QAAQ,CAAC,KAAKiL,MAAL,CAAYjD,OAAb,CAAzE,EAAgG;EAC9F3B,IAAAA,GAAG,CAACiC,cAAJ,GAAqB,KAArB;EACA,WAAO,KAAP;EACD;;EACD,SAAO,KAAK2C,MAAL,CAAYjD,OAAZ,CAAoB4L,KAApB,CAA0B,CAAC,CAA3B,MAAkCpW,sBAAzC;EACD;;6CA/FoB6R,KAAKwE,OAAOX,SAASC,aAAa5E,SAAS;EAAA;;EAC9D,kCAAI,IAAJ,uDAAoC;EAClC,SAAK7M,MAAL,CAAYkG,KAAZ,CAAkB,uCAAuC,KAAKqD,MAAL,CAAYjD,OAArE;EACA;EACD,GAJ6D;EAO9D;;;EACA,MAAI,CAAC3G,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAjB,EAAwC;EACtC3B,IAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;EACD;EACD;EACJ;EACA;EACA;EACA;EACA;;;EAEI,MAAIkG,OAAO,IAAIA,OAAO,KAAKhP,UAA3B,EAAuC;EACrC;EACA,QAAI,CAAC8B,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IAAuC3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAA5F,EAAgG;EAC9F6L,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmE,KAAK0D,iBAAxE;;EACA,sEAAkB1D,GAAlB,EAAuB9N,SAAvB,EAAkC2R,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,KAAKC,iBAAL,EAHO,CAAV;EAID;EACF,GARD,MAQO;EACL,QAAI,CAAC/R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IACH3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAD9C,IAEJ4L,KAAK,GAAG7V,SAFR,EAEmB;EACnB;EACE8V,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmEwE,KAAnE;;EACA,sEAAkBxE,GAAlB,EAAuBwE,KAAK,GAAG,CAA/B,EAAkCX,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,EAHO,CAAV;EAIA;EACD;EACF,GArC6D;EAwC9D;;;EACA,MAAI,CAACA,WAAL,EAAkB;EAChB,QAAI9R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAhB,EAAuC;EACrC;EACAqH,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,KAAKpE,MAAL,CAAYjD,OAAxB,CAAd;EACD;;EACDqH,IAAAA,GAAG,+BAAG,IAAH,sCAAyBA,GAAzB,EAA8B6D,OAA9B,CAAH;EACD,GAND,MAMO;EACLlN,IAAAA,MAAM,CAAC0F,eAAP,GAAyB,IAAzB;EACD;;EAED2D,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAewE,KAAf,CAAd,CAnD8D;;EAqD9DxE,EAAAA,GAAG,+BAAG,IAAH,0CAA2BA,GAA3B,CAAH;EACAA,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW,IAAI5O,IAAJ,GAAWoC,OAAX,EAAX,CAAd,CAtD8D;EAuD9D;;EACA,MAAI,sBAAAmD,MAAM,CAAC+N,SAAP,wEAAkBlT,cAAlB,CAAiC,QAAjC,4BAA8CmF,MAAM,CAACgO,SAArD,sDAA8C,kBAAkBnT,cAAlB,CAAiC,QAAjC,CAA9C,CAAJ,EAA8F;EAC5F;EACA,UAAMoT,MAAM,GAAGjO,MAAM,CAAC+N,SAAP,CAAiBE,MAAjB,IAA2BjO,MAAM,CAACgO,SAAP,CAAiBC,MAA3D;EACA5E,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAe4E,MAAf,CAAd;EACD;;EACD,MAAI5E,GAAG,CAACvJ,OAAJ,CAAY,mBAAZ,MAAqC,CAAC,CAA1C,EAA6C;EAC3CuJ,IAAAA,GAAG,GAAGA,GAAG,CAACjN,OAAJ,CAAY,mBAAZ,EAAiC,QAAjC,CAAN;EACD,GA/D6D;;;EAiE9D,MAAI8R,WAAW,GAAGpP,QAAQ,CAACqP,sBAAT,CAAgC,UAAhC,CAAlB;;EACA,SAAOD,WAAW,CAAC,CAAD,CAAX,IAAkBA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAxC,EAAoD;EAClDF,IAAAA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAf,CAA0BC,WAA1B,CAAsCH,WAAW,CAAC,CAAD,CAAjD;EACD;;EACD,QAAM/I,CAAC,GAAGrG,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAV;EACA5E,EAAAA,CAAC,CAACmJ,YAAF,CAAe,MAAf,EAAuB,iBAAvB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsBjF,GAAtB;EACAlE,EAAAA,CAAC,CAACmJ,YAAF,CAAe,OAAf,EAAwB,UAAxB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsB,UAAtB;EACAnJ,EAAAA,CAAC,CAACoJ,KAAF,GAAU,IAAV;EACAzP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDtJ,CAArD;EACA,OAAKzJ,MAAL,CAAYkG,KAAZ,CAAkB,qBAAqByH,GAAvC;EACD;;EArFkByD,kBACZpR;EADYoR,kBAEZ7H;EAFY6H,kBAGZO;wBAHYP;;;wBAAAA;;;wBAAAA;;;wBAAAA;;;;ECPrB;EA+CO,MAAM4B,iBAAiB,GAAG,MAAM;EACrC,MAAIC,YAAY,GAAG,EAAnB;;EACA,MAAI/Q,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI8Q,OAAO,GAAGhR,cAAc,CAACO,IAAf,CAAoB1H,gBAApB,CAAd;;EACA,QAAImY,OAAO,IAAI,IAAf,EAAqB;EACnBA,MAAAA,OAAO,GAAG3Q,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC6O,OAAD,CAAlB,CAA4BxS,OAA5B,CAAoCjG,gBAApC,EAAsD,IAAtD,CAAX,CAAV;;EACA,UAAIyY,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC8T,QAAAA,YAAY,CAACE,EAAb,GAAkBD,OAAlB;EACD,OAFD,MAEO;EACLD,QAAAA,YAAY,GAAGC,OAAf;EACD;EACF,KAPD,MAOO;EACLD,MAAAA,YAAY,GAAG,EAAf;EACD;EACF;;EACD,SAAOA,YAAP;EACD,CAhBM;EAkBA,MAAMG,kBAAkB,GAAIC,WAAD,IAAiB;EACjD,MAAInR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,UAAMkR,MAAM,GAAG,EAAE,GAAGN,iBAAiB,EAAtB;EAA0B,SAAGK;EAA7B,KAAf;EACA,UAAMH,OAAO,GAAG3Q,IAAI,CAACC,SAAL,CAAe8Q,MAAf,CAAhB;EACApR,IAAAA,cAAc,CAACC,IAAf,CAAoBpH,gBAApB,EAAsC6I,kBAAkB,CAACsP,OAAD,CAAxD,EAH6C;;EAK7CK,IAAAA,wBAAwB;EACzB;EACF,CARM;;EAWA,MAAMA,wBAAwB,GAAG,MAAM;EAC5C,MAAIrR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4I,IAAI,GAAG9I,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAX;;EACA,QAAI8E,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB,UAAI;EACFA,QAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAP;EACA,cAAM2Y,WAAW,GAAGtR,cAAc,CAACO,IAAf,CAAoBzH,aAApB,IAAqCuH,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAArC,GAA0G,EAA9H;;EACA,YAAIgQ,IAAI,IAAI9I,cAAc,CAACE,wBAAf,EAAZ,EAAuD;EACrD,cAAIqR,YAAY,GAAG,EAAnB;EACA,cAAIP,OAAO,GAAGF,iBAAiB,EAA/B;EACAtU,UAAAA,MAAM,CAACgV,IAAP,CAAYR,OAAZ,EAAqBS,OAArB,CAA6B1T,GAAG,IAAI;EAClC,kBAAM2T,UAAU,GAAI5I,IAAI,IAAIwI,WAAR,IAAuB9U,MAAM,CAACgV,IAAP,CAAYF,WAAW,CAACxI,IAAD,CAAvB,EAA+B3K,MAAtD,IAAgEmT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAAjE,GAA2FuT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAA3F,GAAoH,EAAvI;EACA,kBAAM4T,SAAS,GAAGX,OAAO,CAACjT,GAAD,CAAP,CAAayJ,MAA/B;EACA,kBAAM9I,KAAK,GAAGD,QAAQ,EAAtB;EACA,kBAAMmT,QAAQ,GAAGZ,OAAO,CAACjT,GAAD,CAAP,CAAaW,KAAb,CAAjB;;EACA,gBAAI,OAAOiT,SAAP,KAAqB,WAAzB,EAAsC;EACpC,oBAAME,eAAe,GAAGrV,MAAM,CAACgV,IAAP,CAAYG,SAAZ,CAAxB;;EACA,mBAAK,MAAMlL,KAAX,IAAoBoL,eAApB,EAAqC;EACnC,oBAAIC,SAAS,GAAG,EAAhB;;EACA,oBAAID,eAAe,CAAC5U,cAAhB,CAA+BwJ,KAA/B,CAAJ,EAA2C;EACzC,sBAAIsL,MAAM,GAAG,CAAb;EACA,sBAAIC,MAAM,GAAG,CAAb;EACA,wBAAMC,UAAU,GAAGJ,eAAe,CAACpL,KAAD,CAAlC;;EACA,sBAAIwL,UAAU,KAAK,IAAnB,EAAyB;EACvB;EACD;;EACD,sBAAI,OAAOL,QAAP,KAAoB,WAApB,IAAmC,OAAOA,QAAQ,CAACK,UAAD,CAAf,KAAgC,WAAvE,EAAoF;EAClFF,oBAAAA,MAAM,GAAGH,QAAQ,CAACK,UAAD,CAAjB;EACD;;EACD,sBAAI,OAAON,SAAP,KAAqB,WAArB,IAAoC,OAAOA,SAAS,CAACM,UAAD,CAAhB,KAAiC,WAAzE,EAAsF;EACpFD,oBAAAA,MAAM,GAAGL,SAAS,CAACM,UAAD,CAAlB;EACD;;EACDH,kBAAAA,SAAS,GAAG,CAACG,UAAD,EAAaF,MAAb,EAAqBC,MAArB,CAAZ;EACAN,kBAAAA,UAAU,CAACO,UAAD,CAAV,GAAyBH,SAAzB;EACD;EACF;EACF;;EACDP,YAAAA,YAAY,GAAG,EAAE,GAAGA,YAAL;EAAmB,eAACxT,GAAD,GAAO2T;EAA1B,aAAf;EACD,WA5BD;EA6BAJ,UAAAA,WAAW,CAACxI,IAAD,CAAX,GAAoByI,YAApB;EACAvR,UAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF,OAtCD,CAsCE,OAAO3Q,CAAP,EAAU;EACVuR,QAAAA,OAAO,CAACnJ,KAAR,CAAc,0BAA0BpI,CAAxC;EACD;EACF;EACF;EACF,CA/CM;EAgDA,MAAMwR,mBAAmB,GAAG,MAAM;EACvC;EACA,QAAMrJ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;EAEA,MAAIqY,OAAO,GAAG,EAAd;;EACA,MAAIhR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4R,SAAS,GAAG,EAAhB;EACAd,IAAAA,OAAO,GAAGF,iBAAiB,EAA3B;EACA,UAAMsB,YAAY,GAAGpS,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAArB;EACA,UAAMuZ,YAAY,GAAGD,YAAY,GAAGjQ,kBAAkB,CAACiQ,YAAD,CAArB,GAAsC,IAAvE;EACA,UAAME,WAAW,GAAGD,YAAY,GAAGhS,IAAI,CAACK,KAAL,CAAW2R,YAAX,CAAH,GAA8B,IAA9D;EAEA,UAAME,WAAW,GAAI,CAAC,CAACzJ,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAFtD,GAGhBzU,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAMuB,WAAW,GAAI,CAAC,CAAC1J,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAFtD,GAGhBjW,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAM/T,KAAK,GAAGD,QAAQ,EAAtB;EACA,QAAIiU,QAAQ,GAAG,CAAf;EACA,QAAIC,QAAQ,GAAG,CAAf;;EACA,QAAI3B,OAAO,CAACC,EAAR,IAAcD,OAAO,CAACC,EAAR,CAAWvS,KAAX,CAAd,IAAmCsS,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3EF,MAAAA,QAAQ,GAAG1B,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAA7B;EACD;;EACD,QAAI5B,OAAO,CAACyB,EAAR,IAAczB,OAAO,CAACyB,EAAR,CAAW/T,KAAX,CAAd,IAAmCsS,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3ED,MAAAA,QAAQ,GAAG3B,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAA7B;EACD;;EACDd,IAAAA,SAAS,GAAG;EACVe,MAAAA,GAAG,EAAEH,QADK;EAEVI,MAAAA,IAAI,EAAEH,QAFI;EAGVI,MAAAA,GAAG,EAAER,WAHK;EAIVS,MAAAA,KAAK,EAAER;EAJG,KAAZ;EAMA,WAAOV,SAAP;EACD;EACF,CAzCM;EA2CA,MAAMmB,cAAc,GAAG,CAACC,UAAD,WAA4B;EAAA,MAAf;EAAEpV,IAAAA;EAAF,GAAe;EACxD,MAAIqV,KAAK,GAAG,KAAZ;;EACA,MAAI5W,QAAQ,CAAC2W,UAAD,CAAZ,EAA0B;EACxB,SAAK,MAAME,UAAX,IAAyBF,UAAzB,EAAqC;EACnC,UAAIA,UAAU,CAACjW,cAAX,CAA0BmW,UAA1B,CAAJ,EAA2C;EACzCD,QAAAA,KAAK,GAAG,IAAR;EACA,YAAIE,UAAU,GAAGH,UAAU,CAACE,UAAD,CAA3B;;EAEA,YAAIC,UAAU,IAAI,IAAlB,EAAwB;EACtB,iBAAOH,UAAU,CAACE,UAAD,CAAjB;EACA;EACD;;EACD,YAAIA,UAAU,KAAK,QAAf,IAA2B,CAACC,UAAU,CAACzH,KAAX,CAAiB,oEAAjB,CAAhC,EAAwH;EACtHuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaK,YAAb;EACD;;EAED,YAAIgK,UAAU,KAAK,UAAf,IAA6B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAlC,EAA+D;EAC7DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaM,cAAb;EACD;;EAED,YAAI+J,UAAU,KAAK,SAAf,IAA4B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAjC,EAA8D;EAC5DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaO,aAAb;EACD;;EAED,YAAI8J,UAAU,KAAK,WAAf,IAA8B,CAACC,UAAU,CAACzH,KAAX,CAAiB,+BAAjB,CAAnC,EAAsF;EACpFuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaQ,eAAb;EACD;;EAED,YAAI6J,UAAU,KAAK,KAAf,IAAwBC,UAAU,IAAI,IAA1C,EAAgD;EAC9C,cAAInW,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,YAAAA,UAAU,CAACI,GAAX,GAAiB,CAACD,UAAlB;EACD,WAFD,MAEO;EACLF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaS,SAAb;EACD;EACF,SAnCwC;;;EAqCzC,YAAI4J,UAAU,KAAK,KAAnB,EAA0B;EACxB,cAAI,CAAE,CAAE,OAAD,CAAU5V,IAAV,CAAe6V,UAAf,CAAD,IAA+B,CAACA,UAAU,GAAG,EAAd,EAAkBlV,MAAlB,KAA6B,EAA9D,KAAsE,CAACvB,YAAY,CAACyW,UAAD,CAAvF,EAAqG;EACnGF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaU,SAAb;EACD;;EAED,cAAI7M,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EAC5BH,YAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;EACF,SATD,MASO,IAAIzW,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EACnCH,UAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;;EAED,YAAID,UAAU,KAAK,OAAf,IAA0B,CAACtW,aAAa,CAACuW,UAAD,CAA5C,EAA0D;EACxD,cAAIA,UAAU,CAAClV,MAAX,GAAoB,CAApB,IAA0BkV,UAAU,CAACpR,MAAX,CAAkB,CAAlB,MAAyB,GAAvD,EAA6D;EAAE;EAC7DoR,YAAAA,UAAU,GAAGA,UAAU,CAACjV,SAAX,CAAqB,CAArB,EAAwBiV,UAAU,CAAClV,MAAnC,CAAb;;EACA,gBAAIjB,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,cAAAA,UAAU,CAACK,KAAX,GAAmB,CAACF,UAApB;EACD,aAFD,MAEO;EACLF,cAAAA,KAAK,GAAG,KAAR;EACArV,cAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF,WARD,MAQO;EACLwJ,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF;;EAED,YAAI,CAACwJ,KAAL,EAAY;EACV,iBAAOD,UAAU,CAACE,UAAD,CAAjB;EACD;EACF;EACF;EACF;;EACD,SAAOD,KAAP;EACD,CA5EM;EA8EA,MAAMK,gBAAgB,GAAIC,IAAD,IAAU;EACxC,QAAMC,WAAW,GAAG,EAApB;EACAA,EAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAAC1S,IAAxB;;EACA,MAAI0S,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACE,IAAZ,GAAmBH,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD,GALuC;;;EAOxC,MAAIgc,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFM,MAEA;EACLJ,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;;EAED,QAAMC,mBAAmB,GAAG,UAAUC,MAAV,EAAkB;EAC5C,QAAIA,MAAM,IAAI,IAAd,EAAoB;EAClB,UAAIC,OAAO,GAAG,EAAd;EACA,UAAIC,UAAU,GAAG,EAAjB;;EAEA,WAAK,IAAIlH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgH,MAAM,CAAC7V,MAA3B,EAAmC6O,CAAC,EAApC,EAAwC;EACtC,cAAMmH,GAAG,GAAGH,MAAM,CAAChH,CAAD,CAAlB;;EACA,YAAImH,GAAG,CAAC/I,IAAJ,IAAY,IAAhB,EAAsB;EACpB,gBAAMA,IAAI,GAAG+I,GAAG,CAAC/I,IAAjB;;EACA,cAAIA,IAAI,KAAK,iBAAb,EAAgC;EAC9B,mBAAO,UAAP;EACD,WAFD,MAEO,IAAIA,IAAI,KAAK,SAAb,EAAwB;EAC7B6I,YAAAA,OAAO,GAAG,GAAV;EACD,WAFM,MAEA,IAAI7I,IAAI,KAAK,aAAb,EAA4B;EACjC8I,YAAAA,UAAU,GAAG,GAAb;EACD;EACF;EACF;;EAED,UAAID,OAAO,KAAK,GAAhB,EAAqB;EACnB,eAAO,SAAP;EACD,OAFD,MAEO,IAAIC,UAAU,KAAK,GAAnB,EAAwB;EAC7B,eAAO,QAAP;EACD;EACF;EACF,GAzBD;;EA2BA,MAAIT,IAAI,CAACW,mBAAL,IAA4B,IAAhC,EAAsC;EACpCV,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACW,mBAAL,KAA6B,SAAjC,EAA4C;EAC1CV,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EAED,QAAMF,GAAG,GAAGJ,mBAAmB,CAACN,IAAI,CAACa,SAAN,CAA/B;;EACA,MAAIH,GAAG,IAAI,IAAX,EAAiB;EACfT,IAAAA,WAAW,CAACa,SAAZ,GAAwBJ,GAAxB;EACD;;EAED,QAAMK,IAAI,GAAIf,IAAI,CAACe,IAAL,IAAa,IAAd,GAAsBf,IAAI,CAACe,IAAL,CAAUrW,MAAhC,GAAyC,CAAtD;;EACA,MAAIqW,IAAI,GAAG,CAAX,EAAc;EACZd,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD,GAFD,MAEO;EACLf,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;;EAED,MAAIhB,IAAI,CAACiB,KAAL,IAAc,IAAlB,EAAwB;EACtBhB,IAAAA,WAAW,CAACiB,KAAZ,GAAoBlB,IAAI,CAACiB,KAAzB;EACD;;EAED,MAAIjB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMC,MAAM,GAAGpB,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAf,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACwV,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,GAAwBA,MAAM,CAAC,CAAD,CAA/B,CAAzB;EACD;;EACD,SAAOnB,WAAP;EACD,CAtEM;EAwEA,MAAMqB,mBAAmB,GAAG,CAACtB,IAAD,YAAsB;EAAA,MAAf;EAAE3V,IAAAA;EAAF,GAAe;EACvD,QAAM4V,WAAW,GAAG,EAApB;;EACA,MAAID,IAAI,CAACuB,WAAL,IAAoB,IAAxB,EAA8B;EAC5BtB,IAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAACuB,WAAxB;EACD;;EACD,MAAIvB,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACuB,IAAZ,GAAmBxB,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD;;EAED,MAAIgc,IAAI,CAACI,MAAL,IAAe,IAAnB,EAAyB;EACvB,QAAIJ,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFM,MAEA,IAAIL,IAAI,CAACI,MAAL,KAAgB,OAApB,EAA6B;EAClCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;EACF;;EAED,MAAIL,IAAI,CAACyB,KAAL,IAAc,IAAlB,EAAwB;EACtB,QAAIzB,IAAI,CAACyB,KAAL,CAAWC,SAAX,KAAyB,KAA7B,EAAoC;EAClCzB,MAAAA,WAAW,CAAC0B,KAAZ,GAAoB3B,IAAI,CAACyB,KAAL,CAAWzJ,GAAX,CAAe3J,KAAf,CAAqB,KAArB,EAA4B,CAA5B,CAApB;EACD;EACF;;EAED,MAAI2R,IAAI,CAAC4B,MAAL,IAAe,IAAnB,EAAyB;EACvB,SAAK,IAAIC,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAG7B,IAAI,CAAC4B,MAAL,CAAYlX,MAA9C,EAAsDmX,QAAQ,EAA9D,EAAkE;EAChE,YAAMC,QAAQ,GAAG9B,IAAI,CAAC4B,MAAL,CAAYC,QAAZ,CAAjB;;EACA,UAAIC,QAAQ,CAACnK,IAAT,KAAkB,SAAtB,EAAiC;EAC/BsI,QAAAA,WAAW,CAACiB,KAAZ,GAAoBY,QAAQ,CAAC7X,KAA7B;EACD;EACF;EACF;;EAED,MAAI+V,IAAI,CAAC+B,aAAL,IAAsB,IAA1B,EAAgC;EAC9B9B,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;;EACA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,IAAI,CAAC+B,aAAL,CAAmBrX,MAAvC,EAA+C6O,CAAC,EAAhD,EAAoD;EAClD,YAAMyI,MAAM,GAAGhC,IAAI,CAAC+B,aAAL,CAAmBxI,CAAnB,CAAf;;EACA,UAAIyI,MAAM,CAACrK,IAAP,KAAgB,MAApB,EAA4B;EAC1BsI,QAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;EACF;EACF;;EAED,MAAIhB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMc,QAAQ,GAAGjC,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAjB,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACqW,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAtB,GAA4BA,QAAQ,CAAC,CAAD,CAArC,CAAzB;EACD;;EAED,MAAIjC,IAAI,CAACkC,kBAAL,IAA2B,IAA/B,EAAqC;EACnCjC,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACkC,kBAAL,KAA4B,SAAhC,EAA2C;EACzCjC,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EACDvW,EAAAA,MAAM,CAACkG,KAAP,CAAa,uBAAuB3D,IAAI,CAACC,SAAL,CAAeoT,WAAf,CAApC;EAEA,SAAOA,WAAP;EACD,CA1DM;EA4DA,MAAMkC,oBAAoB,GAAG,CAAC1C,UAAD,EAAa2C,QAAb,KAA0B;EAC5D,MAAI7V,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAIuC,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;;EACA,UAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,QAAAA,GAAG,CAAC8B,gBAAJ,GAAuB,EAAvB;EACD;EACF,KAN4C;;;EAS7C,QAAI2O,UAAU,CAAC4C,OAAX,IAAsB,IAA1B,EAAgC;EAC9B,YAAMtE,IAAI,GAAG0B,UAAU,CAAC4C,OAAxB;;EACA,WAAK,MAAM/X,GAAX,IAAkByT,IAAlB,EAAwB;EACtB,YAAIA,IAAI,CAACvU,cAAL,CAAoBc,GAApB,CAAJ,EAA8B;EAC5BmV,UAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkByT,IAAI,CAACzT,GAAD,CAAtB;EACD;EACF;;EACD,aAAOmV,UAAU,CAAC4C,OAAlB;EACD;;EAED,SAAK,MAAM9Y,IAAX,IAAmBkW,UAAnB,EAA+B;EAC7B,UAAIA,UAAU,CAACjW,cAAX,CAA0BD,IAA1B,CAAJ,EAAqC;EACnC,YAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCD,IAApC,KAA6C,CAAC6Y,QAAlD,EAA4D;EAC1D;EACD;;EACDpT,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBvH,IAArB,IAA6BkW,UAAU,CAAClW,IAAD,CAAvC;EACD;EACF;;EACD,QAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAArB,IAAgC,IAApC,EAA0C;EACxC,aAAOrT,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAA5B;EACD;;EACD9V,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACD;EACF,CAjCM;EAmCA,MAAMwR,WAAW,GAAG,CAAC9D,UAAD,EAAa+D,YAAb,EAA2BnR,gBAA3B,KAAgD;EACzE,MAAIoN,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,QAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,UAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,UAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,QAAAA,kBAAkB,GAAG,EAArB;EACA9E,QAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,MAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,MAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;;EACD,MAAI1O,GAAG,CAACmC,cAAJ,IAAsB,IAA1B,EAAgC;EAC9B,UAAMsR,KAAK,GAAGzT,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,CAAd;;EACA,QAAIiE,KAAK,IAAI,IAAb,EAAmB;EACjBhV,MAAAA,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,EAA+BtV,MAA/B;;EACA,UAAIsV,KAAK,KAAK,eAAd,EAA+B;EAC7B,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAnD,EAAyD;EACvDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4CvV,MAA5C;EACD;EACF,OAJD,MAIO,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF,OAJM,MAIA,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF;EACF;EACF;EACF,CAjCM;EAmCA,MAAMwV,GAAG,GAAIC,OAAD,IAAa;EAC9B;EACA,MAAIA,OAAO,CAACzG,UAAR,IAAsB,IAAtB,IAA8ByG,OAAO,CAACzG,UAA1C,EAAsD;EACpDsC,IAAAA,OAAO,CAAClO,KAAR,CAAc,6BAAd,EAA6CqS,OAA7C;EACA,WAAO,IAAP;EACD;;EAED,QAAMC,QAAQ,GAAGD,OAAO,CAACrc,MAAD,CAAP,KAAoB,IAArC;;EAEA,MAAIgG,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C;EACA,QAAI;EACF,UAAIqW,cAAc,GAAGvW,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAArB;;EACA,UAAIkd,cAAc,IAAI,IAAlB,IAA0BD,QAA9B,EAAwC;EACtCC,QAAAA,cAAc,GAAG,EAAjB;;EACA,aAAK,MAAMxY,GAAX,IAAkBsY,OAAlB,EAA2B;EACzB,cAAIA,OAAO,CAACpZ,cAAR,CAAuBc,GAAvB,CAAJ,EAAiC;EAC/B,gBAAIsY,OAAO,CAACtY,GAAD,CAAP,KAAiB,CAAC,CAAtB,EAAyB;EACvB,qBAAOwY,cAAc,CAACxY,GAAD,CAArB;EACD,aAFD,MAEO;EACLwY,cAAAA,cAAc,CAACxY,GAAD,CAAd,GAAsBsY,OAAO,CAACtY,GAAD,CAA7B;EACD;EACF;EACF;;EACDiC,QAAAA,cAAc,CAACqC,gBAAf,CAAgChJ,UAAhC,EAA4Ckd,cAA5C;EACD;EACF,KAfD,CAeE,OAAO5V,CAAP,EAAU;EACVuR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAA+BpI,CAA7C;EACD;EACF;EACF,CA9BM;EA0EA,MAAM6V,OAAO,GAAG,CAACC,OAAD,EAAU3Y,MAAV,KAAqB;EAC1C,MAAI1B,QAAQ,CAACqa,OAAD,CAAR,IAAqBlZ,QAAQ,CAACkZ,OAAD,CAAjC,EAA4C;EAC1C,WAAO,QAAQA,OAAf;EACD;;EACD3Y,EAAAA,MAAM,CAACiL,KAAP,CAAaW,iBAAb;EACD,CALM;EAMA,MAAMgN,uBAAuB,GAAG,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,EAAuCpH,OAAvC,EAAgD3R,MAAhD,KAA2D;EAChG,QAAMgZ,aAAa,GAAGtL,YAAY,CAACjJ,QAAQ,CAAC6J,IAAV,CAAlC,CADgG;;EAEhG,QAAM2K,cAAc,GAAGD,aAAa,CAACnW,CAArC;EACA,QAAMqW,mBAAmB,GAAGF,aAAa,CAACG,CAA1C;EACA,QAAMC,QAAQ,GAAGJ,aAAa,CAACK,SAA/B;;EAEA,MAAI,OAAOJ,cAAP,KAA0B,WAA9B,EAA2C;EACzC,UAAMvW,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAAC/I,EAAL,GAAUgY,OAAO,CAAChY,EAAlB,CAFyC;;EAGzC+I,IAAAA,IAAI,CAACyE,WAAL,GAAmBxC,GAAG,CAACwC,WAAvB,CAHyC;;EAKzC,QAAIxC,GAAG,CAACyC,mBAAR,EAA6B;EAC3B1E,MAAAA,IAAI,CAAChG,eAAD,CAAJ,GAAwBiI,GAAG,CAACyC,mBAA5B;EACD;;EAED,QAAIuG,GAAG,GAAGgE,OAAO,CAACtX,QAAlB;;EACA,QAAI0e,WAAJ,EAAiB;EACfpL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,aAAN,EAAqBoL,WAArB,CAAd;EACD;;EACD,QAAID,SAAJ,EAAe;EACbnL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,SAAN,EAAiBmL,SAAjB,CAAd;EACD;;EACDnL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWsL,cAAX,CAAd;EACAtL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,EAAuB1C,MAAvB,CAAvB,CAAd;;EACA,QAAIkZ,mBAAJ,EAAyB;EACvBvL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWuL,mBAAX,CAAd;EACD;;EAED,QAAIL,YAAY,KAAK,IAArB,EAA2B;EACzBlL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAakL,YAAb,CAAd;EACD;;EAED,QAAIO,QAAJ,EAAc;EACZzU,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB0R,QAAQ,KAAK3d,MAArC;EACAkS,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,WAAN,EAAmByL,QAAnB,CAAd;EACD;;EACDhI,IAAAA,iBAAiB,CAACG,WAAlB,CAA8B5D,GAA9B;EACD;EACF,CAtCM;;;;;;;;;;;;;;ECvfQ,MAAM2L,cAAN,SAA6BrN,KAA7B,CAAmC;EAOhDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXsJ,MAAAA,OAFW;EAGXqI,MAAAA,OAHW;EAIXlF,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,8DAAezM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,4DAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACA,gGAAgCC,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5Cie,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,oFAA0BA,WAA1B;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAatO,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAED6M,EAAAA,YAAY,CAAEC,QAAF,EAAY;EACtB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI9U,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC,aAAO9B,GAAG,CAAC8B,gBAAJ,CAAqBgT,QAArB,CAAP;EACD;EACF;;EAsDD;EACF;EACA;EACA;EACA;EACA;EACA;EACEC,EAAAA,8BAA8B,CAAEzZ,GAAF,EAAOL,KAAP,EAAc+Z,OAAd,EAAuB;EAAA;;EACnD;EACA,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAAxB,IAAgC,2BAAC9B,GAAG,CAAC8B,gBAAL,0DAAC,sBAAsBtH,cAAtB,CAAqCc,GAArC,CAAD,CAApC,EAAgF;EAC9E;EACAmU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,qEAAd;EACD,KAHD,MAGO,IAAI,CAACrL,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA3B,IAAuCA,KAAK,IAAI,CAApD,EAAuD;EAC5DwU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,yCAAd;EACD,KAFM,MAEA;EACL;EACA,UAAI0O,OAAO,KAAK1c,iBAAhB,EAAmC;EACjC0H,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD,OAFD,MAEO;EACL+E,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD;;EACDsC,MAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C,EAPK;;EAUL,UAAI/D,IAAI,GAAG,EAAX;EACA,YAAM0S,UAAU,GAAG,EAAnB;EACA1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA8H,MAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkB;EAAE,SAAC0Z,OAAD,GAAW/Z;EAAb,OAAlB;;EACA,UAAIwV,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,QAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EAEA,gEAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,YAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,gEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEuT,EAAAA,oBAAoB,CAAEja,GAAF,EAAOka,QAAP,EAAiBR,OAAjB,EAA0B;EAC5C,UAAMS,KAAK,GAAG,EAAd;;EACA,SAAK,IAAIlL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiL,QAAQ,CAAC9Z,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,UAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAvB,CAAxC,EAAqE;EACnEkL,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAnB;EACD,OAFD,MAEO,IAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAf,CAAxC,EAAmF;EACxFD,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAX;EACD,OAFM,MAEA;EACLjG,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kDAAd;EACD;EACF;;EACD,QAAItG,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAAA;;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,4BAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB,yEAAuE,EAAvE;EACD;;EACDsJ,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4Bma,KAA5B;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBra,GAAxB,EAA6Bka,QAA7B,EAAuCR,OAAvC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,oBAAoB,CAAEC,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC/C,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,UAAMqf,aAAa,GAAG/V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAtB;EACA,UAAMJ,KAAK,GAAGnO,KAAK,CAACC,OAAN,CAAcwO,aAAd,IAA+BA,aAA/B,GAAgDA,aAAa,IAAI,IAAjB,GAAwB,CAACA,aAAD,CAAxB,GAA0C,EAAxG;;EAEA,UAAMC,QAAQ,GAAI/a,KAAD,IAAW;EAC1B,YAAMgb,eAAe,GAAG,OAAOhb,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACya,WAAN,EAA5D;;EACA,UAAI,CAACD,KAAK,CAAC/M,QAAN,CAAeuN,eAAf,CAAL,EAAsC;EACpCR,QAAAA,KAAK,CAAChS,IAAN,CAAWwS,eAAX;EACD;EACF,KALD;;EAOA,QAAI3O,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgB/T,KAAK,IAAI;EACvB,YAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D+a,UAAAA,QAAQ,CAAC/a,KAAD,CAAR;EACD,SAFD,MAEO;EACL,kEAAaqL,KAAb,CAAmB,kDAAnB;EACD;EACF,OAND;EAOD,KARD,MAQO,IAAI,OAAOwP,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEE,MAAAA,QAAQ,CAACF,OAAD,CAAR;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,wBAAnB;;EACA;EACD;;EAEDtG,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,IAAgCJ,KAAhC;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEkB,EAAAA,uBAAuB,CAAEL,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAClD,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,QAAI,CAACsJ,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCqb,OAApC,CAAL,EAAmD;EACjD,8DAAavP,KAAb,wBAAmCuP,OAAnC;;EACA;EACD;;EAED,UAAMM,WAAW,GAAIlb,KAAD,IAAW;EAC7B,YAAM+I,KAAK,GAAGhE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpW,OAA9B,CAAsCxE,KAAtC,CAAd;;EACA,UAAI+I,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChBhE,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpR,MAA9B,CAAqCT,KAArC,EAA4C,CAA5C;EACD;EACF,KALD;;EAOA,QAAIsD,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgBmH,WAAhB;EACD,KAFD,MAEO,IAAI,OAAOL,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEK,MAAAA,WAAW,CAACL,OAAD,CAAX;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,0BAAnB;;EACA;EACD,KAxBiD;;;EA2BlD,QAAItG,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8Bna,MAA9B,KAAyC,CAA7C,EAAgD;EAC9C,aAAOsE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;EACEoB,EAAAA,uBAAuB,CAAEP,OAAF,EAAWb,OAAX,EAAoB;EAAA;;EACzC,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAI,EAACsJ,GAAD,aAACA,GAAD,iDAACA,GAAG,CAAE8B,gBAAN,2DAAC,uBAAuBtH,cAAvB,CAAsCqb,OAAtC,CAAD,CAAJ,EAAqD;EACnD,8DAAavP,KAAb,wBAAmCuP,OAAnC;EACD,KAFD,MAEO;EACL,aAAO7V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiC,IAAjC,EAAuCb,OAAvC;EACD;;EAEDW,EAAAA,kBAAkB,CAAEE,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC7C;EACA,QAAIjX,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA1S,IAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ,CAJ6C;;EAO7C8H,IAAAA,UAAU,CAACoF,OAAD,CAAV,GAAsB;EAAE,OAACb,OAAD,GAAWA,OAAO,KAAKrc,cAAZ,GAA6B,IAA7B,GAAoCmd;EAAjD,KAAtB;;EACA,QAAIrF,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,MAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,IAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,8DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,UAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,8DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;EAzS+C;;6DAiD1BqU,YAAY;EAChC,MAAI/O,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAI,CAACjc,aAAa,CAACqc,eAAD,CAAd,IAAoC,CAACA,eAAe,CAACpQ,KAAzD,EAAiE;EAC/DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA0C,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB;;EACA,gBAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,cAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EACF;EACF;EACF;;;;;;;;;;;;;;;;;;;;;;ECrFY,MAAM2U,gBAAN,SAA+BrP,KAA/B,CAAqC;EAQlDvS,EAAAA,WAAW,OAOX8S,MAPW,EAOH;EAAA,QAPK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGXnI,MAAAA,OAHW;EAIXxJ,MAAAA,MAJW;EAKXuJ,MAAAA;EALW,KAOL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,gEAAgBD,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,gEAAgBnI,OAAhB;EACA,8DAAexJ,MAAf;EACA,oEAAkBwM,MAAlB;EACA,8DAAejD,MAAf;EACD,GAvBiD;;;EA0LlDgS,EAAAA,KAAK,GAAI;EACP,4DAAarV,KAAb,CAAmB,wCAAnB;;EACA;;EACAhE,IAAAA,cAAc,CAACsD,WAAf,CAA2B9K,KAA3B,EAAkC,IAAlC;EACD;;EAkED0N,EAAAA,IAAI,GAAkB;EAAA,sCAAbmR,WAAa;EAAbA,MAAAA,WAAa;EAAA;;EACpB,8EAAwBA,WAAxB;;EACA,WAAO,CAAP;EACD;;EAED5M,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EA1QiD;;2CA0BrCqO,YAAY;EACvB,MAAIvJ,WAAW,GAAG,IAAlB;EACAvP,EAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;;EACA,QAAM+J,MAAM,GAAIC,GAAD,IAAS;EACtB,QAAI7V,CAAC,GAAG1D,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAR;EACA,UAAM4gB,CAAC,GAAGxZ,cAAc,CAAC2C,kBAAf,CAAkChK,YAAlC,CAAV;EACA,QAAI8gB,GAAJ;;EACA,QAAI/V,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACA+V,MAAAA,GAAG,GAAGF,GAAN;EACD,KAHD,MAGO;EACL;EACAE,MAAAA,GAAG,GAAG/V,CAAC,CAACjM,EAAR;EACA,UAAIiiB,aAAa,GAAG,KAApB;EACA,UAAIC,YAAY,GAAG,KAAnB;;EACA,UAAIF,GAAG,IAAI,IAAX,EAAiB;EACfA,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACAG,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACD,UAAIjX,GAAG,CAAC3I,SAAJ,IAAiB,IAAjB,IAAyBkG,cAAc,CAACE,wBAAf,EAA7B,EAAwE;EACtEuC,QAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,UAAI2f,aAAJ,EAAmB;EACjB,YAAKF,CAAD,IAAO,IAAX,EAAiB;EACf;EACA/W,UAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBD,CAAvB;EACA/W,UAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD;EACF,OAND,MAMO;EACL;EACA;EACA,aAAK,MAAM1C,GAAX,IAAkBwX,GAAlB,EAAuB;EACrB,cAAIA,GAAG,CAACtc,cAAJ,CAAmB8E,GAAnB,CAAJ,EAA6B;EAC3B,kBAAMtK,EAAE,GAAG8hB,GAAG,CAACxX,GAAD,CAAd;;EACA,gBAAIU,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBvO,EAApB,CAAJ,EAA6B;EAC3BgiB,cAAAA,GAAG,GAAGhiB,EAAN;EACAkiB,cAAAA,YAAY,GAAG,IAAf;EACA;EACD;EACF;EACF;EACF;;EAED,UAAIA,YAAJ,EAAkB;EAChB,YAAIF,GAAG,KAAKhX,GAAG,CAAC3I,SAAJ,CAAcgN,UAAd,EAAZ,EAAwC;EACtC;EACA;EACA;EACD,SAJD,MAIO;EACLyI,UAAAA,WAAW,GAAG,KAAd;EACAvP,UAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;EACD;;EACD,cAAMqK,UAAU,GAAGnX,GAAG,CAAC3I,SAAJ,CAAcqM,GAAd,CAAkBsT,GAAlB,CAAnB;EACAhX,QAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBG,UAAvB;EACA5Z,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CihB,UAA9C;EACA,gEAAaxV,OAAb,GAAuBwV,UAAvB;EAEA,cAAMxR,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E;EACA,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB;;EACA,oEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF,OApBD,MAoBO;EACL,YAAI,CAACqR,aAAL,EAAoB;EAClB,eAAKL,KAAL;EACD,SAFD,MAEO;EACL,cAAKG,CAAD,IAAO,IAAX,EAAiB;EACf,oEAAapV,OAAb,GAAuBoV,CAAvB;EACAxZ,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6gB,CAA9C;EACAjK,YAAAA,WAAW,GAAG,KAAd;EACD;EACF;;EACDvP,QAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACA4e,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACD;EACF;;EACD7V,IAAAA,CAAC,CAACjM,EAAF,GAAOgiB,GAAP;EACAzZ,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzJ,YAAhC,EAA8C8K,CAA9C;EACD,GA7ED;;EA+EA,MAAIqG,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAIjc,aAAa,CAACqc,eAAD,CAAb,IAAmC,CAACA,eAAe,CAACpQ,KAAxD,EAAgE;EAC9DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA,gBAAMqG,GAAG,GAAG,EAAZ;;EACA,cAAIvZ,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAIgT,UAAU,CAAC2G,QAAf,EAAyB;EACvBN,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAAC2G,QAApB;EACD;;EACD,gBAAI3G,UAAU,CAACyB,KAAf,EAAsB;EACpB4E,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAACyB,KAApB;EACD;;EACD,gBAAIzB,UAAU,CAAC+B,IAAf,EAAqB;EACnBsE,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAAC+B,IAA5B;EACD;;EACD,gBAAI/B,UAAU,CAACU,IAAf,EAAqB;EACnB2F,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAACU,IAA5B;EACD;;EACD,gBAAI2F,GAAG,CAACpb,MAAJ,GAAa,CAAjB,EAAoB;EAClBmb,cAAAA,MAAM,CAACC,GAAD,CAAN;EACD;EACF;;EACD3D,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB,EA7BsD;EA+BtD;EACA;;;EACA,cAAI+O,WAAJ,EAAiB;EACf/O,YAAAA,IAAI,CAACxG,MAAD,CAAJ,GAAe,IAAf;EACD;;EACD,gBAAM8d,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,cAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB,CAvCsD;EA0CtD;EACA;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD,EAAgE8K,WAAhE;EACD;EACF;EACF;EACF;EACF;;mEAQyB;EACxB9M,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACAyN,EAAAA,OAAO,CAAClO,KAAR,CAAc,wBAAd;;EACA,MAAIhE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;;EACA,4DAAc0F,sBAAd,CAAqC,EAArC;EACD;;6CAEc;EACbhG,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;;EACA,0DAAaT,KAAb,CAAmB,uBAAnB;;EACAvB,EAAAA,GAAG,CAACC,WAAJ,GAAkB;EAChB0B,IAAAA,OAAO,EAAE,IADO;EAEhBC,IAAAA,KAAK,EAAE,CAFS;EAGhBC,IAAAA,MAAM,EAAE;EAHQ,GAAlB;;EAKA,MAAItE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAACxH,YAAD,CAAnB;EACA,WAAOwH,YAAY,CAACvH,YAAD,CAAnB;EACA,WAAOuH,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BnI,YAA5B,EAA0C8J,GAAG,CAACM,WAA9C;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4BlI,YAA5B,EAA0C2T,WAAW,EAArD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;EACA,0DAAaqB,OAAb,GAAuB,IAAvB;;EACA,4DAAcqE,sBAAd,CAAqC,EAArC;EACD;;yDAEmBsR,UAAU;EAC5B,MAAIhQ,KAAK,CAACC,OAAN,CAAc+P,QAAd,KAA2BA,QAAQ,CAAC5b,MAAT,GAAkB,CAAjD,EAAoD;EAClD,UAAM+U,UAAU,GAAG6G,QAAQ,CAACC,GAAT,EAAnB;EACA,UAAMC,cAAc,GAAG/G,UAAU,IAAI,IAAd,IAAsB3W,QAAQ,CAAC2W,UAAD,CAA9B,KACjBA,UAAU,CAAC8F,IAAX,IAAmB,IAAnB,IAA2Bxc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC8F,IAAvB,EAA6B7a,MAA7B,GAAsC,CAAlE,IACI+U,UAAU,CAAC+F,QAAX,IAAuB,IAAvB,IAA+Bzc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC+F,QAAvB,EAAiC9a,MAAjC,GAA0C,CAD7E,IAEI+U,UAAU,CAAC,aAAD,CAAV,IAA6B,IAA7B,IAAqC1W,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC,aAAD,CAAtB,EAAuC/U,MAAvC,GAAgD,CAHvE,CAAvB;;EAIA,QAAI8b,cAAJ,EAAoB;EAClBja,MAAAA,cAAc,CAACyD,uBAAf;;EACA,UAAI;EACF,oEAAiB,CAACyP,UAAD,CAAjB;EACD,OAFD,CAEE,OAAOvS,CAAP,EAAU;EACV,gEAAaqD,KAAb,CAAmBrD,CAAnB;EACD;EACF,KAPD,MAOO;EACL,8DAAaoI,KAAb,CAAmB,uCAAnB;EACD;EACF;EACF;;EC9RI,MAAMmR,mBAAN,SAAkCC,WAAlC,CAA8C;EACnD3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKb4iB,OALa,GAKH,IALG;EAAA,SAMbC,QANa,GAMF,IANE;EAAA,SAObC,MAPa,GAOJ,IAPI;EAAA,SAQbC,KARa,GAQL,IARK;EAAA,SASbC,SATa,GASD,IATC;EAAA,SAUbC,cAVa,GAUI,IAVJ;EAEb,SAAKH,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EASC,MAAIC,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKuc,oBAAL;EACD;EACF;;EAED,MAAIvT,OAAJ,GAAe;EACb,WAAO,KAAK+S,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI/S,OAAJ,CAAahJ,GAAb,EAAkB;EAChB,SAAK+b,QAAL,GAAgB/b,GAAhB;EACD;;EAED,MAAIwc,KAAJ,GAAa;EACX,WAAO,KAAKF,MAAL,CAAYG,OAAnB;EACD;;EAED,MAAIC,OAAJ,GAAe;EACb,WAAO,KAAKJ,MAAL,CAAYK,UAAnB;EACD;;EAED,MAAIC,UAAJ,GAAkB;EAChB,WAAO,KAAKN,MAAL,CAAYO,OAAZ,CAAoBD,UAA3B;EACD;;EAEDL,EAAAA,oBAAoB,GAAI;EACtB,UAAM5I,UAAU,GAAG,KAAK2I,MAAL,CAAYG,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAnB;EACA,UAAM+C,gBAAgB,GAAG,KAAKyC,OAAL,CAAa8T,SAAtC;EAEA,SAAKd,MAAL,CAAYe,SAAZ,GAAwB,KAAKC,wBAAL,EAAxB;EACA,SAAKf,KAAL,GAAa,KAAKgB,UAAL,CAAgBpF,cAAhB,CAA+B,gBAA/B,CAAb;EACA,SAAKqE,SAAL,GAAiB,KAAKe,UAAL,CAAgBpF,cAAhB,CAA+B,WAA/B,CAAjB;EACA,SAAKqF,SAAL,GAAiB,KAAKD,UAAL,CAAgBpF,cAAhB,CAA+B,OAA/B,CAAjB;EAEA,SAAKoE,KAAL,CAAWkB,gBAAX,CAA4B,MAA5B,EAAoC,KAAKC,4BAAL,EAApC;EACA,SAAKjB,cAAL,GAAsB,IAAIkB,cAAJ,CAAmB,MAAM,KAAKC,YAAL,CAAkB,KAAKrB,KAAvB,EAA8B,KAAKC,SAAnC,CAAzB,CAAtB;EACA,SAAKC,cAAL,CAAoBoB,OAApB,CAA4B,KAAKtB,KAAjC;EAEA,SAAKiB,SAAL,CAAeC,gBAAf,CAAgC,OAAhC,EAAyC,MAAM;EAC7C,WAAKhB,cAAL,CAAoBqB,SAApB,CAA8B,KAAKvB,KAAnC;EACArZ,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDZ,OAAlD,GAA4D,MAA5D;EACA,WAAKva,MAAL;;EACA,UAAIqR,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,YAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,cAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,cAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,YAAAA,kBAAkB,GAAG,EAArB;EACA9E,YAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,UAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,UAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;EACF,KAjBD;EAmBA/O,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;;EAEA,QAAI,KAAKE,UAAT,EAAqB;EACnB,WAAKX,KAAL,CAAWkB,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,aAAKb,MAAL,CAAYO,OAAZ,CAAoB/Y,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAY,KAAKf,UAAjB,EAA6B,QAA7B,CAA7B,GAAsE9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B,KAAK8O,UAAzG;EACA9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAHD;EAID;EACF;;EAEDY,EAAAA,YAAY,CAAErB,KAAF,EAASC,SAAT,EAAoB;EAC9B,UAAM4B,KAAK,GAAG,KAAKC,qBAAL,CAA2B9B,KAA3B,CAAd;EACAC,IAAAA,SAAS,CAACuB,KAAV,CAAgBO,WAAhB,CAA4B,OAA5B,YAAwCF,KAAxC;EACD;;EAEDd,EAAAA,wBAAwB,GAAI;EAC1B,+BACI,KAAKV,MAAL,CAAY2B,UAAZ,CAAuBC,GAD3B,uBAEI,KAAK5B,MAAL,CAAY2B,UAAZ,CAAuBE,IAF3B;EAID;;EAEDf,EAAAA,4BAA4B,GAAI;EAC9B,WAAO,MAAM;EACX,YAAMU,KAAK,GAAG,KAAKC,qBAAL,CAA2B,KAAK9B,KAAhC,CAAd;EACA,WAAKA,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,OAA7B,YAAyCF,KAAzC;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,OAAjC,YAA6CF,KAA7C;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,QAAjC,EAA2C,MAA3C;EACA,WAAK9B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,UAAjC,EAA6C,OAA7C;EACA,WAAK/B,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,YAA7B,EAA2C,SAA3C;EACA,WAAKd,SAAL,CAAeO,KAAf,CAAqBO,WAArB,CAAiC,YAAjC,EAA+C,SAA/C;EACApb,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDW,UAAlD,GAA+D,SAA/D;EACD,KATD;EAUD;;EAEDL,EAAAA,qBAAqB,CAAEM,GAAF,EAAO;EAC1B,UAAMC,KAAK,GAAGD,GAAG,CAACE,YAAJ,GAAmBF,GAAG,CAACG,aAArC;EACA,WAAOH,GAAG,CAACI,MAAJ,GAAaH,KAApB;EACD;;EAlHgD;;ECL9C,MAAMI,OAAN,SAAsB7C,WAAtB,CAAkC;EACvC3iB,EAAAA,WAAW,CAAEylB,MAAF,EAAUC,OAAV,EAAmB;EAC5B;EAD4B,SAQ9BC,OAR8B,GAQpB,IARoB;EAAA,SAS9BC,QAT8B,GASnB,IATmB;EAE5B,SAAK9C,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACA,SAAKsC,MAAL,GAAcA,MAAd;EACA,SAAKC,OAAL,GAAeA,OAAf;EACA,SAAKG,aAAL,CAAmBH,OAAnB;EACD;;EAKD,MAAIlC,OAAJ,GAAe;EACb,WAAO,KAAKkC,OAAL,CAAajC,UAApB;EACD;;EAED,MAAIhJ,UAAJ,GAAkB;EAChB,WAAO,KAAKiL,OAAL,CAAanC,OAApB;EACD;;EAEDuC,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDH,EAAAA,aAAa,CAAEI,GAAF,EAAO;EAClB,SAAKN,OAAL,GAAe,KAAKG,QAAL,CAAc,KAAd,EAAqB,gBAArB,CAAf;;EAEA,YAAQG,GAAG,CAACC,YAAZ;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,gBAAMR,OAAO,GAAG,KAAKS,mBAAL,CAAyBF,GAAG,CAACA,GAAJ,CAAQ,CAAR,CAAzB,CAAhB;EACA,eAAKN,OAAL,CAAatM,WAAb,CAAyBqM,OAAzB;EACD;EANH;;EASA,UAAMU,SAAS,GAAG,KAAKN,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAM,IAAAA,SAAS,CAACvC,SAAV,mBAA+BwC,sBAAsB,CAACJ,GAAG,CAAChmB,EAAJ,CAAOqK,KAAP,CAAa,GAAb,EAAkB,CAAlB,CAAD,CAArD;;EACA,QAAI,CAAC2b,GAAG,CAACK,MAAT,EAAiB;EACf,YAAMC,YAAY,GAAG,KAAKT,QAAL,CAAc,MAAd,EAAsB,cAAtB,CAArB;EACAM,MAAAA,SAAS,CAAC/M,WAAV,CAAsBkN,YAAtB;EACD;;EAED,SAAKZ,OAAL,CAAatM,WAAb,CAAyB+M,SAAzB;EACA,SAAKtD,MAAL,CAAYzJ,WAAZ,CAAwB,KAAKsM,OAA7B;EACD;;EAEDQ,EAAAA,mBAAmB,CAAEF,GAAF,EAAO;EACxB,UAAMP,OAAO,GAAG,KAAKI,QAAL,CAAc,KAAd,EAAqB,SAArB,CAAhB;;EAEA,QAAIG,GAAG,CAACO,QAAR,EAAkB;EAChB,YAAMC,cAAc,GAAG,KAAKC,QAAL,CAAcT,GAAG,CAACO,QAAlB,EAA4B,SAA5B,CAAvB;EACAd,MAAAA,OAAO,CAACrM,WAAR,CAAoBoN,cAApB;EACD;;EACD,UAAME,oBAAoB,GAAG,KAAKb,QAAL,CAAc,KAAd,EAAqB,sBAArB,CAA7B;;EACA,QAAIG,GAAG,CAACW,OAAR,EAAiB;EACf,YAAMC,aAAa,GAAG,KAAKH,QAAL,CAAcT,GAAG,CAACW,OAAlB,EAA2B,SAA3B,CAAtB;EACAD,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EACD;;EACD,UAAMC,gBAAgB,GAAG,KAAKhB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;;EACA,QAAIG,GAAG,CAACc,KAAR,EAAe;EACb,YAAMA,KAAK,GAAG,KAAKjB,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAd;EACAiB,MAAAA,KAAK,CAACC,SAAN,GAAkBf,GAAG,CAACc,KAAtB;EACAD,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B0N,KAA7B;EACD;;EACD,QAAId,GAAG,CAACgB,WAAR,EAAqB;EACnB,YAAMA,WAAW,GAAG,KAAKnB,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAmB,MAAAA,WAAW,CAACD,SAAZ,GAAwBf,GAAG,CAACgB,WAA5B;EACAH,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B4N,WAA7B;EACD;;EACD,QAAIhB,GAAG,CAACc,KAAJ,IAAad,GAAG,CAACgB,WAArB,EAAkC;EAChCN,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EACD;;EAED,QAAIb,GAAG,CAACW,OAAJ,IAAeX,GAAG,CAACc,KAAnB,IAA4Bd,GAAG,CAACgB,WAApC,EAAiD;EAC/CvB,MAAAA,OAAO,CAACrM,WAAR,CAAoBsN,oBAApB;EACD;;EACD,QAAIV,GAAG,CAACiB,OAAJ,IAAejB,GAAG,CAACiB,OAAJ,CAAYvgB,MAA/B,EAAuC;EACrC,YAAMwgB,gBAAgB,GAAG,KAAKC,UAAL,CAAgBnB,GAAG,CAACiB,OAApB,CAAzB;EACAxB,MAAAA,OAAO,CAACrM,WAAR,CAAoB8N,gBAApB;EACD;;EACD,WAAOzB,OAAP;EACD;;EAED0B,EAAAA,UAAU,GAAgB;EAAA,QAAdF,OAAc,uEAAJ,EAAI;EACxB,UAAMC,gBAAgB,GAAG,KAAKrB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;EACA,QAAIuB,aAAa,GAAG,KAApB;EACAH,IAAAA,OAAO,CAACjN,OAAR,CAAgB,CAACqN,CAAD,EAAI9R,CAAJ,KAAU;EACxB,YAAM+R,MAAM,GAAG,KAAKzB,QAAL,CAAc,QAAd,mBAAkCtQ,CAAlC,GAAuC,QAAvC,CAAf;EACA+R,MAAAA,MAAM,CAACP,SAAP,GAAmBM,CAAC,CAACE,IAArB;;EACA,UAAIhS,CAAC,GAAG,CAAR,EAAW;EACT+R,QAAAA,MAAM,CAAChD,KAAP,CAAakD,OAAb,IAAwB,mBAAxB;EACD;;EACD,UAAIH,CAAC,CAACI,MAAF,KAAa,MAAjB,EAAyB;EACvBL,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACDF,MAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BkO,MAA7B;EACD,KAVD;;EAWA,QAAIF,aAAJ,EAAmB;EACjB,WAAKM,WAAL,CAAiBR,gBAAjB;EACD;;EACD,WAAOA,gBAAP;EACD;;EAEDQ,EAAAA,WAAW,CAAER,gBAAF,EAAoB;EAC7B,SAAKvB,QAAL,GAAgB,KAAKE,QAAL,CAAc,KAAd,qBAAiC,KAAKrL,UAAtC,GAAoD,UAApD,CAAhB;EACA,SAAKmL,QAAL,CAAc/B,SAAd,GAA0B+D,YAA1B;EACA,UAAMC,YAAY,GAAG,KAAK/B,QAAL,CAAc,MAAd,yBAAsC,KAAKrL,UAA3C,GAAyD,cAAzD,CAArB;EACAoN,IAAAA,YAAY,CAACb,SAAb,GAAyB,qBAAzB;EACA,SAAKpB,QAAL,CAAcvM,WAAd,CAA0BwO,YAA1B;EACAV,IAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B,KAAKuM,QAAlC;EACD;;EAEDc,EAAAA,QAAQ,CAAEzS,GAAF,EAAOL,IAAP,EAAa;EACnB,UAAM6S,cAAc,GAAG,KAAKX,QAAL,CAAc,KAAd,YAAwBlS,IAAxB,eAAvB;EACA,UAAM8J,KAAK,GAAG,KAAKoI,QAAL,CAAc,KAAd,EAAqBlS,IAArB,CAAd;EACA8J,IAAAA,KAAK,CAACxE,YAAN,CAAmB,KAAnB,EAA0BjF,GAA1B,EAHmB;;EAKnByJ,IAAAA,KAAK,CAACxE,YAAN,CAAmB,SAAnB,EAA8B,MAA9B;EACAuN,IAAAA,cAAc,CAACpN,WAAf,CAA2BqE,KAA3B;EACA,WAAO+I,cAAP;EACD;;EAEDqB,EAAAA,iBAAiB,CAAEC,IAAF,EAAQC,SAAR,EAAmB;EAClC,YAAQ,KAAKtC,OAAL,CAAaQ,YAArB;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,eAAK+B,6BAAL,CAAmCF,IAAnC,EAAyCC,SAAzC;EACD;EALH;EAOD;;EAEDC,EAAAA,6BAA6B,CAAEF,IAAF,EAAQC,SAAR,EAAmB;EAC9C,UAAM/B,GAAG,GAAG,KAAKP,OAAL,CAAaO,GAAb,CAAiB,CAAjB,CAAZ;EACA,UAAMiC,OAAO,GAAG;EAAE5E,MAAAA,KAAK,EAAE,KAAK7I,UAAd;EAA0B+I,MAAAA,OAAO,EAAE,KAAKA;EAAxC,KAAhB;;EACA,QAAIuE,IAAI,CAACI,OAAL,KAAiB,QAArB,EAA+B;EAC7B,YAAMloB,EAAE,GAAG8nB,IAAI,CAAC9nB,EAAL,CAAQqK,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAX;EACA,YAAMid,MAAM,GAAGtB,GAAG,CAACiB,OAAJ,CAAYjnB,EAAZ,CAAf;EACAioB,MAAAA,OAAO,CAACE,EAAR,GAAa;EACXC,QAAAA,QAAQ,EAAEd,MAAM,CAACC;EADN,OAAb;;EAGA,UAAID,MAAM,CAACG,MAAP,KAAkB,KAAtB,EAA6B;EAC3BH,QAAAA,MAAM,CAACe,eAAP,GAAyB1d,MAAM,CAAC6Z,IAAP,CAAY8C,MAAM,CAACtT,GAAnB,EAAwB,QAAxB,CAAzB,GAA8DrJ,MAAM,CAACG,QAAP,GAAkBwc,MAAM,CAACtT,GAAvF;EACD,OAFD,MAEO,IAAIsT,MAAM,CAACG,MAAP,KAAkB,MAAtB,EAA8B;EACnC9c,QAAAA,MAAM,CAAC2d,KAAP;EACAC,QAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BnB,MAAM,CAACoB,aAArC;EACA,aAAK/C,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACApM,QAAAA,UAAU,CAAC,MAAM;EACf,eAAKkN,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACD,SAFS,EAEP,IAFO,CAAV;EAGD;EACF,KAhBD,MAgBO,IAAIiD,IAAI,CAACI,OAAL,KAAiB,kBAAjB,IAAuClC,GAAG,CAACvC,UAA/C,EAA2D;EAChEuC,MAAAA,GAAG,CAACqC,eAAJ,GAAsB1d,MAAM,CAAC6Z,IAAP,CAAYwB,GAAG,CAACvC,UAAhB,EAA4B,QAA5B,CAAtB,GAA+D9Y,MAAM,CAACG,QAAP,GAAkBkb,GAAG,CAACvC,UAArF;EACD;;EACD,QAAIsE,SAAJ,EAAe;EACbtN,MAAAA,OAAO,CAACkO,GAAR,CAAY,sEAAZ,EAAoFV,OAApF;EACD,KAFD,MAEO;EACLtd,MAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD;EACF;;EAnKsC;;ECDlC,MAAMW,aAAa,GAAG,UAAqH;EAAA,MAApH;EAAEC,IAAAA,eAAF;EAAmBC,IAAAA,WAAnB;EAAgCC,IAAAA,UAAhC;EAA4CC,IAAAA,gBAA5C;EAA8DC,IAAAA,WAA9D;EAA2EC,IAAAA,eAA3E;EAA4FC,IAAAA;EAA5F,GAAoH;EAChJ,kNAM0BN,eAN1B,2CAO0BC,WAP1B,w/BA2CeC,UA3Cf,mLAiDeC,gBAjDf,0FAoD0BC,WApD1B,gCAqDeC,eArDf,87CAyG0BC,iBAzG1B;EAmHD,CApHM;EAsHA,MAAMC,oBAAoB,GAAG,WAa9B;EAAA,MAb+B;EACnCC,IAAAA,oBADmC;EAEnCC,IAAAA,gBAFmC;EAGnCC,IAAAA,qBAHmC;EAInCC,IAAAA,gBAJmC;EAKnCC,IAAAA,cALmC;EAMnCC,IAAAA,kBANmC;EAOnCC,IAAAA,oBAPmC;EAQnCC,IAAAA,qBARmC;EASnCC,IAAAA,wBATmC;EAUnCC,IAAAA,0BAVmC;EAWnCC,IAAAA,2BAXmC;EAYnCC,IAAAA;EAZmC,GAa/B;EACJ,8QAQ4BX,oBAR5B,6CAS4BC,gBAT5B,6iBAgC4BC,qBAhC5B,4DAiC2CA,qBAjC3C,kCAkCiBC,gBAlCjB,oLA0CiBC,cA1CjB,mtCA4F6CJ,oBA5F7C,kBA4FyEA,oBA5FzE,qBA4FwGA,oBA5FxG,6LAmG8CA,oBAnG9C,kBAmG0EA,oBAnG1E,qBAmGyGA,oBAnGzG,sRA6G4BK,kBA7G5B,kCA8GiBC,oBA9GjB,uJAmHkBC,qBAAqB,GAAG,eAAeA,qBAAlB,GAA0C,MAnHjF,2GAuH4BC,wBAvH5B,kCAwHiBC,0BAxHjB,mCAyHkBC,2BAA2B,GAAG,eAAeA,2BAAlB,GAAgD,MAzH7F,4uBAiJsDC,oBAjJtD;EAuJD,CArKM;;EChHA,MAAMC,KAAN,SAAoBvH,WAApB,CAAgC;EACrC3iB,EAAAA,WAAW,CAAEsG,MAAF,EAAU;EACnB;EADmB,SAMrB6jB,WANqB,GAMP,KANO;EAAA,SAOrBC,kBAPqB,GAOA,KAPA;EAAA,SAQrBC,gBARqB,GAQF,IARE;EAAA,SASrBC,gBATqB,GASF,EATE;EAAA,SAUrBC,eAVqB,GAUH,CAVG;EAAA,SAWrBvC,SAXqB,GAWT,KAXS;EAAA,SAYrBwC,qBAZqB,GAYG,EAZH;EAAA,SAerBC,aAfqB,GAeL,IAfK;EAAA,SAgBrB9c,KAhBqB,GAgBb,IAhBa;EAAA,SAiBrB+c,aAjBqB,GAiBL,IAjBK;EAAA,SAkBrBC,SAlBqB,GAkBT,IAlBS;EAAA,SAmBrBC,aAnBqB,GAmBL,IAnBK;EAAA,SAoBrBC,QApBqB,GAoBV,IApBU;EAAA,SAqBrBC,mBArBqB,GAqBC,IArBD;;EAAA,SAsWrBC,0BAtWqB,GAsWQ,CAAC,MAAM;EAClC,aAAQ5hB,CAAD,IAAO;EACZ,YAAIA,CAAC,CAAC6hB,YAAF,GAAiBrX,QAAjB,CAA0B,KAAKhG,KAA/B,CAAJ,EAA2C;EACzC;EACA,gBAAMoa,IAAI,GAAG5e,CAAC,CAAC4e,IAAF,IAAW5e,CAAC,CAAC6hB,YAAF,IAAkB7hB,CAAC,CAAC6hB,YAAF,EAA1C;;EACA,cAAIjD,IAAI,CAACphB,MAAT,EAAiB;EACf,kBAAM1G,EAAE,GAAG8nB,IAAI,CAAC,CAAD,CAAJ,CAAQ9nB,EAAnB;;EACA,gBAAIA,EAAE,KAAK,YAAX,EAAyB;EACvB,mBAAKgrB,WAAL;EACD,aAFD,MAEO,IAAIhrB,EAAE,CAACirB,UAAH,CAAc,WAAd,CAAJ,EAAgC;EACrC,mBAAKC,eAAL,GAAuB,KAAKL,mBAA5B;EACA,mBAAKA,mBAAL,GAA2B/C,IAAI,CAAC,CAAD,CAA/B;EACA,mBAAKqD,oBAAL,CAA0BrD,IAAI,CAAC,CAAD,CAAJ,CAAQf,SAAlC;EACD,aAJM,MAIA;EACL,oBAAMqE,KAAK,GAAGtD,IAAI,CAACuD,MAAL,CAAa7L,CAAD;EAAA;;EAAA,uBAAO,UAAAA,CAAC,CAACxf,EAAF,gDAAMirB,UAAN,CAAiB,SAAjB,MAA+BzL,CAAC,CAAC0I,OAAF,KAAc,kBAApD;EAAA,eAAZ,CAAd;;EACA,kBAAIkD,KAAK,CAAC1kB,MAAV,EAAkB;EAChB,sBAAM4kB,SAAS,GAAGF,KAAK,CAACA,KAAK,CAAC1kB,MAAN,GAAe,CAAhB,CAAvB;EACA4kB,gBAAAA,SAAS,CAACzD,iBAAV,CAA4BuD,KAAK,CAAC,CAAD,CAAjC,EAAsC,KAAKrD,SAA3C;EACD;EACF;EACF;EACF,SAnBD,MAmBO,IAAI,KAAKwD,gBAAL,CAAsBriB,CAAtB,KAA4B,KAAKghB,WAArC,EAAkD;EACvD,cAAI,KAAKC,kBAAT,EAA6B;EAC3B,iBAAKA,kBAAL,GAA0B,KAA1B;EACD,WAFD,MAEO;EACL,iBAAKa,WAAL,CAAiB9hB,CAAjB;EACD;EACF;EACF,OA3BD;EA4BD,KA7B4B,GAtWR;;EAAA,SAmerBsiB,aAneqB,GAmeJC,QAAD,IAAc;EAC5B,UAAI,KAAKd,aAAL,KAAuB,IAA3B,EAAiC;EAC/B,aAAKA,aAAL,CAAmB5D,SAAnB,GAA+B0E,QAAQ,GAAG,CAAX,GAAe,IAAf,GAAsBA,QAArD;EACA,cAAMC,uBAAuB,GAAGD,QAAQ,GAAG,CAAX,IAAgBhiB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAAhD;EACA,aAAKG,aAAL,CAAmBrG,KAAnB,CAAyBZ,OAAzB,GAAmCgI,uBAAuB,GAAG,MAAH,GAAY,MAAtE;EACD;EACF,KAzeoB;;EAEnB,SAAKrlB,MAAL,GAAcA,MAAd;EACA,SAAKwc,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAmBD,MAAIyI,gBAAJ,GAAwB;EACtB,WAAO,EAAP;EACD;;EAED,MAAIA,gBAAJ,CAAsBC,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,QAAIA,IAAI,CAACllB,MAAL,GAAc,CAAlB,EAAqB;EACnB,WAAKmlB,mBAAL,CAAyBD,IAAzB;EACD;EACF;;EAED,MAAIE,0BAAJ,GAAkC;EAChC,WAAO,EAAP;EACD;;EAED,MAAIA,0BAAJ,CAAgCF,IAAhC,EAA2C;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzC,UAAMG,WAAW,GAAG,EAApB;;EACA,QAAIH,IAAI,CAACllB,MAAL,GAAc,CAAd,IAAmB,KAAKgH,KAA5B,EAAmC;EACjC,WAAKqa,SAAL,GAAiB,IAAjB;EACA,WAAKuC,eAAL,GAAuB,CAAvB;EACAsB,MAAAA,IAAI,CAAC5R,OAAL,CAAc7R,CAAD,IAAO;EAClB,cAAM7B,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,QAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP;EACAylB,QAAAA,WAAW,CAACzlB,GAAD,CAAX,GAAmB6B,CAAnB;EACA,aAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,aAAKmiB,eAAL;EACD,OAND;EAOA,WAAK2B,kBAAL,CAAwBF,WAAxB;EACA,WAAKG,0BAAL;EACD;EACF;;EAEDC,EAAAA,iBAAiB,GAAI;EACnB,SAAKC,IAAL;EACD;;EAEDA,EAAAA,IAAI,GAAI;EACN,SAAK5G,MAAL,GAAc,KAAKuC,SAAL,GAAiB,KAAKwC,qBAAtB,GAA8ChiB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlH;;EACA,QAAImB,MAAM,CAACgV,IAAP,CAAY,KAAKyL,MAAjB,EAAyB9e,MAAzB,KAAoC,CAAxC,EAA2C;EACzC;EACD;;EACD,SAAK8jB,aAAL,GAAqB/gB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAArB;;EACA,QAAI,KAAKA,aAAL,KAAuB,IAA3B,EAAiC;EAC/B;EACD;;EAED,QAAI,KAAKhF,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAvB,EAA2C;EACzC,WAAKC,gBAAL;EACD,KAFD,MAEO,IAAI,KAAK5B,aAAT,EAAwB;EAC7B,WAAKA,aAAL,CAAmBxhB,MAAnB;EACD;;EAED,SAAKqjB,WAAL;EAEA;EACJ;EACA;EACA;EACA;;EACI/iB,IAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,EAAsC,KAAK3B,0BAA3C;EACArhB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,EAAmC,KAAK8G,0BAAxC;EACA,SAAKtF,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,IAAiC,KAAKykB,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD,CAAjC;EAEA,SAAKlE,MAAL,CAAYe,SAAZ,GAAwB,KAAK+I,cAAL,EAAxB;EACA,SAAK9J,MAAL,CAAYzJ,WAAZ,CAAwB,KAAK1L,KAA7B;EACD;;EAEDkf,EAAAA,oBAAoB,GAAI;EACtB,UAAMC,QAAQ,GAAG,KAAKC,gCAAL,CAAsC,KAAtC,CAAjB;EACA,UAAMC,MAAM,GAAGF,QAAQ,GAAG9nB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,CAAH,GAA2B,EAAlD;;EACA,QAAIE,MAAM,CAACrmB,MAAP,KAAkB,CAAtB,EAAyB;EACvB;EACD;;EACDqmB,IAAAA,MAAM,CAAC/S,OAAP,CAAgB7R,CAAD,IAAO;EACpB,UAAI,CAAC0kB,QAAQ,CAAC1kB,CAAD,CAAR,CAAYke,MAAjB,EAAyB;EACvB,aAAKgE,gBAAL,CAAsBliB,CAAtB,IAA2B0kB,QAAQ,CAAC1kB,CAAD,CAAnC;EACA,aAAKmiB,eAAL;EACD;EACF,KALD;EAMA,SAAK2B,kBAAL,CAAwBY,QAAxB;EACA,SAAKX,0BAAL;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,gCAAgC,GAA2B;EAAA,QAAzBE,gBAAyB,uEAAN,IAAM;EACzD,QAAIH,QAAQ,GAAGI,gBAAgB,EAA/B;EAEA,UAAMjB,GAAG,GAAG1kB,IAAI,CAACC,KAAL,CAAWnC,IAAI,CAAC4mB,GAAL,KAAa,IAAxB,CAAZ;;EACA,SAAK,MAAMhG,GAAX,IAAkB6G,QAAlB,EAA4B;EAC1B,UAAIA,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,IAA0BL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyB,CAAnD,IAAwDL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyBlB,GAArF,EAA0F;EACxF,YAAIgB,gBAAgB,IAAI,KAAKtf,KAA7B,EAAoC;EAClC,gBAAMyf,EAAE,GAAG,KAAKrJ,UAAL,CAAgBpF,cAAhB,CAA+BmO,QAAQ,CAAC7G,GAAD,CAAR,CAAchmB,EAA7C,CAAX;EACAmtB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;;EACA,cAAI,CAAC0jB,QAAQ,CAAC7G,GAAD,CAAR,CAAcK,MAAnB,EAA2B;EACzB,iBAAKiE,eAAL;EACA,iBAAK4B,0BAAL;EACD;EACF;;EACD,eAAOW,QAAQ,CAAC7G,GAAD,CAAf;EACD;EACF;;EACD,QAAI6G,QAAQ,IAAIA,QAAQ,CAACnmB,MAAT,GAAkB,CAAlC,EAAqC;EACnCmmB,MAAAA,QAAQ,GAAG9nB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDslB,MAAxD,CAA+D,CAACC,GAAD,EAAMnlB,CAAN,KAAY;EAAEmlB,QAAAA,GAAG,CAACnlB,CAAC,CAACnI,EAAH,CAAH,GAAYmI,CAAZ;EAAe,eAAOmlB,GAAP;EAAY,OAAxG,EAA0G,EAA1G,CAAX;EACD;;EACDC,IAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA,WAAOA,QAAP;EACD;;EAEDhB,EAAAA,mBAAmB,GAAa;EAAA,QAAXD,IAAW,uEAAJ,EAAI;EAC9B,UAAM4B,SAAS,GAAG,KAAKV,gCAAL,EAAlB;EACA,UAAM/kB,IAAI,GAAG3C,IAAI,CAAC4mB,GAAL,EAAb;EACA,UAAMyB,YAAY,GAAG,EAArB;EACA7B,IAAAA,IAAI,CAAC5R,OAAL,CAAa,CAAC7R,CAAD,EAAIoN,CAAJ,KAAU;EACrB,YAAMjP,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,MAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP,CAFqB;;EAIrB6B,MAAAA,CAAC,CAACJ,IAAF,GAASA,IAAI,GAAGwN,CAAhB;EACApN,MAAAA,CAAC,CAACke,MAAF,GAAW,CAAX;EACAmH,MAAAA,SAAS,CAAClnB,GAAD,CAAT,GAAiB6B,CAAjB;EACAslB,MAAAA,YAAY,CAACnnB,GAAD,CAAZ,GAAoB6B,CAApB;EACA,WAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,WAAKmiB,eAAL;EACD,KAVD;EAWAiD,IAAAA,iBAAiB,CAACC,SAAD,CAAjB;;EACA,QAAI,KAAK9f,KAAT,EAAgB;EACd,WAAKue,kBAAL,CAAwBwB,YAAxB;EACA,WAAKvB,0BAAL;EACD;EACF;;EAEDrG,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDwG,EAAAA,gBAAgB,GAAI;EAClB,QAAI,CAAC,KAAK5B,aAAV,EAAyB;EACvB,WAAKA,aAAL,GAAqB,KAAK9E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB,CADuB;;EAGvB,WAAK8E,aAAL,CAAmBrG,KAAnB,CAAyBkD,OAAzB,iHAA0I,KAAKhC,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCzD,eAAhL,uCAA4N,KAAKrD,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCoB,SAAlQ;EACAjkB,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B,KAAKuR,aAA/B;EACD;;EACD,SAAKiD,2BAAL,GAPkB;;EAUlBjjB,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC,MAAM;EACtC,WAAK4J,2BAAL;EACD,KAFD;EAGD;;EAEDA,EAAAA,2BAA2B,GAAI;EAC7B,QAAI;EACF,YAAMC,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,KAAsD,KAAKA,aAA7E;EACA,YAAM;EAAEsD,QAAAA,GAAF;EAAOC,QAAAA;EAAP,UAAiBF,SAAS,CAACG,qBAAV,EAAvB;EACA,WAAKrD,aAAL,CAAmBrG,KAAnB,CAAyBwJ,GAAzB,aAAkCA,GAAG,GAAG,CAAxC;EACA,WAAKnD,aAAL,CAAmBrG,KAAnB,CAAyB2J,IAAzB,aAAmCF,KAAK,GAAG,CAA3C;EACD,KALD,CAKE,OAAOzc,KAAP,EAAc;EACd,WAAKjL,MAAL,CAAYkG,KAAZ,CAAkB,yCAAlB,EAA6D+E,KAA7D;EACD;EACF;;EAEDkb,EAAAA,WAAW,GAAI;EACb,SAAK9e,KAAL,GAAa,KAAKmY,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAb;EACA,UAAMqI,MAAM,GAAG,KAAKrI,QAAL,CAAc,KAAd,EAAqB,QAArB,CAAf;EAEA,UAAMsI,WAAW,GAAG,KAAKtI,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAsI,IAAAA,WAAW,CAACpH,SAAZ,GAAwB,KAAKvB,MAAL,CAAYsB,KAApC;EAEA,UAAM/C,SAAS,GAAG,KAAK8B,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAlB;EACA9B,IAAAA,SAAS,CAACH,SAAV,GAAsB,QAAtB;EAEAsK,IAAAA,MAAM,CAAC9U,WAAP,CAAmB+U,WAAnB;EACAD,IAAAA,MAAM,CAAC9U,WAAP,CAAmB2K,SAAnB;EACA,SAAKrW,KAAL,CAAW0L,WAAX,CAAuB8U,MAAvB;;EACA,QAAI,KAAK1I,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,YAAMgmB,UAAU,GAAG,KAAK0B,gBAAL,EAAnB;EACA,WAAK1gB,KAAL,CAAW0L,WAAX,CAAuBsT,UAAvB;EACD;;EACD,SAAKhC,SAAL,GAAiB,KAAK7E,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAjB;EACA,SAAKnY,KAAL,CAAW0L,WAAX,CAAuB,KAAKsR,SAA5B;EAEA,SAAKD,aAAL,GAAqB,KAAK5E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB;EACA,SAAK4E,aAAL,CAAmB1D,SAAnB,GAA+B,sCAA/B;EACA,SAAK2D,SAAL,CAAetR,WAAf,CAA2B,KAAKqR,aAAhC,EAtBa;;EAyBb,UAAM4D,OAAO,GAAG;EACdC,MAAAA,IAAI,EAAE,KAAK5D,SADG;EAEd6D,MAAAA,UAAU,EAAE,KAFE;EAGdC,MAAAA,SAAS,EAAE;EAHG,KAAhB;EAKA,SAAK5D,QAAL,GAAgB,IAAI6D,oBAAJ,CAAyB,CAACC,OAAD,EAAU9D,QAAV,KAAuB;EAAE,WAAK+D,mBAAL,CAAyBD,OAAzB;EAAmC,KAArF,EAAuFL,OAAvF,CAAhB;EAEA,SAAKzB,oBAAL;EACD;;EAEDwB,EAAAA,gBAAgB,GAAI;EAClB,UAAMQ,mBAAmB,GAAG,KAAK/I,QAAL,CAAc,KAAd,EAAqB,qBAArB,CAA5B;EAEA,UAAMgJ,SAAS,GAAG,KAAKhJ,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAgJ,IAAAA,SAAS,CAACjL,SAAV,GAAsBkL,QAAtB;EACAD,IAAAA,SAAS,CAACE,QAAV,CAAmB,CAAnB,EAAsBzK,KAAtB,GAA8B,2BAA9B;EACAuK,IAAAA,SAAS,CAAC7K,gBAAV,CAA2B,OAA3B,EAAoC,MAAM;EACxC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,CAAC,EAA9D,EAAkE,CAAlE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCyV,SAAhC;EAEA,UAAMI,iBAAiB,GAAG,KAAKpJ,QAAL,CAAc,KAAd,EAAqB,mBAArB,CAA1B;EACA,UAAMqJ,WAAW,GAAG,CAAC,KAAD,EAAQ,GAAG,KAAK1J,MAAL,CAAYkH,UAAvB,CAApB;;EACAwC,IAAAA,WAAW,CAAClV,OAAZ,CAAoB,CAACzP,CAAD,EAAIgL,CAAJ,KAAU;EAC5B,YAAM4Z,QAAQ,GAAG,KAAKtJ,QAAL,CAAc,KAAd,qBAAiCtQ,CAAjC,GAAsC,UAAtC,CAAjB;EACA4Z,MAAAA,QAAQ,CAACpI,SAAT,GAAqBxc,CAArB;;EACA,UAAIgL,CAAC,KAAK,CAAV,EAAa;EACX,aAAKsV,mBAAL,GAA2BsE,QAA3B;EACD;;EACDF,MAAAA,iBAAiB,CAAC7V,WAAlB,CAA8B+V,QAA9B;EACD,KAPD;;EAQAP,IAAAA,mBAAmB,CAACxV,WAApB,CAAgC6V,iBAAhC;EAEA,UAAMG,UAAU,GAAG,KAAKvJ,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAnB;EACAuJ,IAAAA,UAAU,CAACxL,SAAX,GAAuBkL,QAAvB;EACAM,IAAAA,UAAU,CAACpL,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,EAA7D,EAAiE,CAAjE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCgW,UAAhC;EAEA,UAAMf,OAAO,GAAG;EAAEC,MAAAA,IAAI,EAAEM,mBAAR;EAA6BJ,MAAAA,SAAS,EAAE;EAAxC,KAAhB;EACA,UAAMa,aAAa,GAAGJ,iBAAiB,CAACF,QAAlB,CAA2B,CAA3B,CAAtB;EACA,UAAMO,YAAY,GAAGL,iBAAiB,CAACF,QAAlB,CAA2B,KAAKvJ,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAlD,CAArB;EAEA,UAAM6oB,qBAAqB,GAAG,IAAId,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC5D,WAAKsmB,kBAAL,CAAwBX,SAAxB,EAAmC3lB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA7D;EACD,KAF6B,EAE3BpB,OAF2B,CAA9B;EAGAkB,IAAAA,qBAAqB,CAACnL,OAAtB,CAA8BiL,aAA9B;EAEA,UAAMK,oBAAoB,GAAG,IAAIjB,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC3D,WAAKsmB,kBAAL,CAAwBJ,UAAxB,EAAoClmB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA9D;EACD,KAF4B,EAE1BpB,OAF0B,CAA7B;EAGAqB,IAAAA,oBAAoB,CAACtL,OAArB,CAA6BkL,YAA7B;EAEA,WAAOV,mBAAP;EACD;;EAEDY,EAAAA,kBAAkB,CAAErC,EAAF,EAAMwC,IAAN,EAAY;EAC5B,QAAI,CAACxC,EAAL,EAAS;EACP;EACD;;EACDA,IAAAA,EAAE,CAAC7I,KAAH,CAASZ,OAAT,GAAmBiM,IAAI,GAAG,MAAH,GAAY,MAAnC;EACD;;EAEDxE,EAAAA,oBAAoB,CAAEyE,cAAF,EAAkB;EACpC,SAAKxF,gBAAL,GAAwBwF,cAAxB;EAEA,SAAKlF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,QAAIC,OAAO,GAAG,CAAd;EAEA,SAAK5E,eAAL,IAAwB,KAAKA,eAAL,CAAqBjS,YAArB,CAAkC,UAAlC,EAA8C,OAA9C,CAAxB;EACA,SAAK4R,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,MAAlD;EAEA,SAAKyR,SAAL,CAAeqF,UAAf,CAA0B/V,OAA1B,CAAkCzP,CAAC,IAAI;EACrC,UAAIA,CAAC,CAACsV,YAAF,CAAe,IAAf,MAAyB,eAA7B,EAA8C;EAC5CtV,QAAAA,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,GAAmB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmC7f,CAAC,CAACsV,YAAF,CAAe,UAAf,MAA+B,KAAKuK,gBAAxE,GAA4F,OAA5F,GAAsG,MAAxH;;EACA,YAAI7f,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,KAAoB,OAAxB,EAAiC;EAC/BoM,UAAAA,OAAO;EACR;EACF;EACF,KAPD;;EAQA,QAAIA,OAAO,KAAK,CAAhB,EAAmB;EACjB,WAAKrF,aAAL,CAAmB1D,SAAnB,aAAkC6I,cAAlC;EACA,WAAKnF,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,OAAnC;EACD,KAHD,MAGO;EACL,WAAK+G,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,MAAnC;EACD;EACF;;EAEDuI,EAAAA,kBAAkB,GAAiB;EAAA;;EAAA,QAAfY,QAAe,uEAAJ,EAAI;EACjC,KAAC,KAAK9E,SAAN,IAAmB,KAAKiI,uBAAL,EAAnB;EACA,SAAKtF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,UAAMI,cAAc,4BAAG,KAAKzK,MAAL,CAAYyK,cAAf,yEAAiCnsB,aAArD;EACA,UAAMosB,UAAU,GAAG,KAAKxF,SAAL,CAAewF,UAAlC;EAEA,UAAMC,UAAU,GAAGprB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDqoB,GAAxD,CAA6DjoB,CAAD,IAAOA,CAAC,CAACnI,EAArE,CAAnB;;EACA,SAAK,MAAMmI,CAAX,IAAgBgoB,UAAhB,EAA4B;EAC1B,YAAMxhB,IAAI,GAAG,IAAI4W,OAAJ,CAAY,KAAKC,MAAjB,EAAyBqH,QAAQ,CAAC1kB,CAAD,CAAjC,CAAb;EACAwG,MAAAA,IAAI,CAACsK,YAAL,CAAkB,IAAlB,EAAwB4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYnI,EAApC;EACA2O,MAAAA,IAAI,CAACsK,YAAL,CAAkB,OAAlB,EAA2B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYqb,UAAvC;EACA7U,MAAAA,IAAI,CAACsK,YAAL,CAAkB,MAAlB,EAA0B,kBAA1B;;EACA,UAAI,KAAKuM,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,CAApC,EAAuC;EACrCiI,QAAAA,IAAI,CAACsK,YAAL,CAAkB,UAAlB,EAA8B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYkoB,IAAZ,CAAiB,CAAjB,KAAuB,EAArD;EACA1hB,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAsB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmCyC,QAAQ,CAAC1kB,CAAD,CAAR,CAAYgnB,QAAZ,KAAyB,KAAK/E,gBAAlE,GAAsF,OAAtF,GAAgG,MAArH;EACD,OAHD,MAGO;EACLzb,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAqB,OAArB;EACD;;EACD,WAAKgH,SAAL,CAAe4F,YAAf,CAA4B3hB,IAA5B,EAAkCuhB,UAAlC;EACA,WAAKtF,QAAL,CAAcxG,OAAd,CAAsBzV,IAAtB;EACD;;EAED,QAAI4hB,aAAa,GAAG,KAAK7F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoD9pB,MAAxE;;EACA,WAAO6pB,aAAa,GAAGN,cAAvB,EAAuC;EACrC,YAAMQ,WAAW,GAAG,KAAK/F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,CAApB;;EACA,UAAIC,WAAW,CAAC/pB,MAAZ,GAAqB,CAAzB,EAA4B;EAAE+pB,QAAAA,WAAW,CAACA,WAAW,CAAC/pB,MAAZ,GAAqB,CAAtB,CAAX,CAAoCyC,MAApC;EAA8C;;EAC5EonB,MAAAA,aAAa;EACd;;EACD,UAAMG,WAAW,GAAG,KAAKhG,SAAL,CAAe8F,gBAAf,CAAgC,2CAAhC,EAA6E9pB,MAAjG;EACA,SAAK+jB,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmCgN,WAAW,GAAG,MAAH,GAAY,OAA1D;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAiCE;EACF;EACA;EACA;EACA;EACA;EACEnF,EAAAA,gBAAgB,CAAEriB,CAAF,EAAK;EAAA;;EACnB,UAAMsc,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,UAAM+sB,YAAY,GAAGlnB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,CAArB;EAEA,WACE,6BAAKA,aAAL,4EAAoBoG,QAApB,CAA6B1nB,CAAC,CAACia,MAA/B,OAA0CwN,YAA1C,aAA0CA,YAA1C,uBAA0CA,YAAY,CAAEC,QAAd,CAAuB1nB,CAAC,CAACia,MAAzB,CAA1C,CADF;EAGD;EAED;EACF;EACA;EACA;;;EACEwL,EAAAA,mBAAmB,CAAED,OAAF,EAAW;EAC5B,UAAMmC,gBAAgB,GAAG,CAAC,KAAK9I,SAA/B;;EACA,QAAI,KAAKmC,WAAT,EAAsB;EACpBwE,MAAAA,OAAO,CAAC1U,OAAR,CAAiB9Q,CAAD,IAAO;EACrB,YAAIA,CAAC,CAAC4nB,cAAF,IAAoB,KAAKzG,gBAAL,CAAsB7kB,cAAtB,CAAqC0D,CAAC,CAACia,MAAF,CAASnjB,EAA9C,CAApB,IAAyEkJ,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,KAA4B,CAAzG,EAA4G;EAC1Gnd,UAAAA,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,GAA0B,CAA1B;;EACA,cAAIwK,gBAAJ,EAAsB;EACpBlmB,YAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAA1C;EACA,iBAAKwN,iBAAL,CAAuB7nB,CAAC,CAACia,MAAF,CAASnjB,EAAhC,EAAoC,EAAE,GAAGkJ,CAAC,CAACia,MAAF,CAASsC,OAAd;EAAuBY,cAAAA,MAAM,EAAE;EAA/B,aAApC;EACA5N,YAAAA,UAAU,CAAC,MAAM;EACfvP,cAAAA,CAAC,CAACia,MAAF,CAASW,UAAT,CAAoBpF,cAApB,CAAmC,cAAnC,EAAmD4F,KAAnD,CAAyDZ,OAAzD,GAAmE,MAAnE;EACD,aAFS,EAEP,IAFO,CAAV;EAGD,WAND,MAMO;EACLjJ,YAAAA,OAAO,CAACkO,GAAR,CAAY,qEAAZ,EAAmF;EAAEtF,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAAnF;EACD;;EACD,eAAK+G,eAAL;EACA,eAAK4B,0BAAL;EACA,iBAAO,KAAK7B,gBAAL,CAAsBnhB,CAAC,CAACia,MAAF,CAASnjB,EAA/B,CAAP;EACD;EACF,OAhBD;EAiBD;EACF;;EAED+wB,EAAAA,iBAAiB,CAAEzqB,GAAF,EAAOL,KAAP,EAAc;EAC7B,QAAI,CAAC,KAAK8hB,SAAV,EAAqB;EACnB,YAAM8E,QAAQ,GAAGI,gBAAgB,EAAjC;EACAJ,MAAAA,QAAQ,CAACvmB,GAAD,CAAR,GAAgBL,KAAhB;EACAsnB,MAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD;EACF,GAtboC;;;EAybrC7B,EAAAA,WAAW,CAAE9hB,CAAF,EAAK;EACd,SAAKghB,WAAL,GAAmB,CAAC,KAAKA,WAAzB;EACA,SAAKC,kBAAL,GAA0B,CAAC,EAACjhB,CAAD,aAACA,CAAD,uBAACA,CAAC,CAAE8nB,IAAJ,CAA3B;;EACA,QAAI,KAAK9G,WAAT,EAAsB;EACpB,WAAKQ,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,OAAC,KAAK9H,SAAN,IAAmB,KAAK+E,gCAAL,EAAnB;EACA,WAAKpf,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,OAA3B;EACA,WAAKhW,KAAL,CAAW4W,KAAX,CAAiB2M,MAAjB,GAA0B,YAA1B,CAJoB;;EAKpB,UAAI,KAAKzL,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,aAAKmkB,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,OAAlD;EACA,aAAK4R,mBAAL,GAA2B,KAAK/G,UAAL,CAAgBpF,cAAhB,CAA+B,YAA/B,CAA3B;EACA,aAAKyM,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD;EACA,aAAKjD,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDwS,UAApD,IAAkE,KAAKpN,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDyS,WAAtH;EACD;;EACD,WAAKC,gBAAL,CAAsBloB,CAAtB;EACD,KAZD,MAYO;EACL,WAAKwE,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,MAA3B;EACD;EACF;;EAED0N,EAAAA,gBAAgB,CAAEloB,CAAF,EAAK;EACnB,UAAMmoB,WAAW,GAAG1mB,MAAM,CAAC2mB,UAA3B;EACA,UAAMC,iBAAiB,GAAGC,gBAAgB,CAACxmB,GAAG,CAAC0C,KAAL,CAA1C;EACA,UAAMogB,GAAG,GAAGyD,iBAAiB,CAACE,gBAAlB,CAAmC,aAAnC,CAAZ;EACA,UAAMC,MAAM,GAAGH,iBAAiB,CAACE,gBAAlB,CAAmC,gBAAnC,CAAf;EACA,UAAMxD,IAAI,GAAGsD,iBAAiB,CAACE,gBAAlB,CAAmC,cAAnC,CAAb;EACA,UAAM1D,KAAK,GAAGwD,iBAAiB,CAACE,gBAAlB,CAAmC,eAAnC,CAAd;EACA,UAAME,kBAAkB,GAAG7D,GAAG,IAAI4D,MAAP,IAAiBzD,IAAjB,IAAyBF,KAApD;;EACA,QAAIsD,WAAW,GAAG,GAAd,IAAqB,CAACM,kBAA1B,EAA8C;EAC5C,YAAMC,GAAG,GAAGC,gBAAgB,CAAC3oB,CAAD,EAAI,KAAKwE,KAAL,CAAWokB,YAAf,EAA6B,KAAKpkB,KAAL,CAAWqkB,WAAxC,CAA5B;EACA,YAAMC,IAAI,GAAGJ,GAAG,CAACI,IAAjB;EACA,YAAMC,IAAI,GAAGL,GAAG,CAACK,IAAjB;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiBwJ,GAAjB,GAAuBmE,IAAI,GAAG,IAA9B;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiB2J,IAAjB,GAAwB+D,IAAI,GAAG,IAA/B;EACD;EACF;EAED;EACF;EACA;EACA;EACA;;;EAUE9F,EAAAA,0BAA0B,GAAI;EAC5B,QAAI,KAAKnE,SAAT,EAAoB;EAClB,WAAKyD,aAAL,CAAmB,KAAKlB,eAAxB;EACA;EACD;;EACD,QAAIwF,OAAO,GAAG,CAAd;EACA,SAAKpF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM0kB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAIJ,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,IAAkB6sB,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,CAAeqmB,MAAf,KAA0B,CAAhD,EAAmD;EACjDyJ,QAAAA,OAAO;EACR;EACF,KALD;EAMA,SAAKtE,aAAL,CAAmBsE,OAAnB;EACD;;EAEDE,EAAAA,uBAAuB,GAAI;EACzB,SAAKtF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM+pB,EAAE,GAAG/pB,CAAC,CAACnI,EAAF,CAAKqK,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAX;EACAlC,MAAAA,CAAC,CAAC0a,MAAF,CAASnE,cAAT,CAAwB,WAAxB,EAAqCwR,UAArC,CAAgDnJ,SAAhD,GAA4DX,sBAAsB,CAAC8L,EAAD,CAAlF;EACD,KAHD;EAID;;EAEDvF,EAAAA,cAAc,GAAI;EAChB,UAAMwF,YAAY,GAAG,EAArB;EACA,UAAMC,gBAAgB,GAAG,KAAK5M,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,EAAhC,GAAqC,EAA9D;EAEA,UAAM2lB,MAAM,GAAG;EACbhD,MAAAA,oBAAoB,EAAE,KAAK7D,MAAL,CAAY6G,MAAZ,CAAmBhD,oBAD5B;EAEbC,MAAAA,gBAAgB,EAAE,KAAK9D,MAAL,CAAY6G,MAAZ,CAAmB/C,gBAFxB;EAGbC,MAAAA,qBAAqB,EAAE,KAAK/D,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BrF,eAHpC;EAIbW,MAAAA,gBAAgB,EAAE,KAAKhE,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BnF,UAJ/B;EAKbU,MAAAA,cAAc,EAAE,KAAKjE,MAAL,CAAY6G,MAAZ,CAAmB5C,cALtB;EAMbC,MAAAA,kBAAkB,EAAE,KAAKlE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B2F,QANrC;EAOb1I,MAAAA,oBAAoB,EAAE,KAAKnE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B3D,UAPvC;EAQbc,MAAAA,wBAAwB,EAAE,KAAKrE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CD,QARvD;EASbvI,MAAAA,0BAA0B,EAAE,KAAKtE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CvJ,UATzD;EAUbiB,MAAAA,oBAAoB,EAAEmI,YAAY,GAAGC;EAVxB,KAAf;;EAYA,QAAI,KAAK5M,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAAlC,EAA+C;EAC7CuD,MAAAA,MAAM,CAACzC,qBAAP,GAA+B,KAAKpE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAA7D;EACD;;EACD,QAAI,KAAKtD,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA9C,EAA2D;EACzDuD,MAAAA,MAAM,CAACtC,2BAAP,GAAqC,KAAKvE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA/E;EACD;;EAED,UAAMyJ,WAAW,GAAGnJ,oBAAoB,CAACiD,MAAD,CAAxC;EAEA,UAAMmG,UAAU,GAAG,KAAKhN,MAAL,CAAY6G,MAAZ,CAAmBoG,KAAtC;EACA,UAAMC,SAAS,GAAG9J,aAAa,CAAC;EAC9BC,MAAAA,eAAe,EAAE2J,UAAU,CAAC3J,eADE;EAE9BC,MAAAA,WAAW,EAAE0J,UAAU,CAAC1J,WAFM;EAG9BC,MAAAA,UAAU,EAAEyJ,UAAU,CAACzJ,UAHO;EAI9BC,MAAAA,gBAAgB,EAAEwJ,UAAU,CAACxJ,gBAJC;EAK9BC,MAAAA,WAAW,EAAEuJ,UAAU,CAACvJ,WALM;EAM9BC,MAAAA,eAAe,EAAEsJ,UAAU,CAACtJ,eANE;EAO9BC,MAAAA,iBAAiB,EAAEqJ,UAAU,CAACrJ;EAPA,KAAD,CAA/B;EAUA,WAAOoJ,WAAW,GAAGG,SAArB;EACD;;EAviBoC;;ECAhC,MAAMC,uBAAuB,GAAG,UAACC,eAAD,EAAwC;EAAA,MAAtB7K,SAAsB,uEAAV,KAAU;;EAC7E,QAAM8K,SAAS,GAAGtqB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAxE;;EACA,MAAImkB,SAAJ,EAAe;EACb/c,IAAAA,GAAG,CAAC0C,KAAJ,CAAU6c,qBAAV,GAAkCqI,eAAlC;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUqa,SAAV,GAAsB,IAAtB;EACA/c,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD,GAJD,MAIO,IAAIxjB,IAAI,CAACC,SAAL,CAAegqB,SAAf,MAA8BjqB,IAAI,CAACC,SAAL,CAAe+pB,eAAf,CAAlC,EAAmE;EACxErqB,IAAAA,cAAc,CAACqC,gBAAf,CAAgChH,eAAhC,EAAiDgvB,eAAjD;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD;EACF,CAVM;EAYA,MAAM0G,kBAAkB,GAAI9M,GAAD,IAAS;EACzC,MAAIA,GAAG,CAAC+M,aAAR,EAAuB;EACrB/nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUoe,0BAAV,GAAuC9F,GAAG,CAACgN,YAA3C;EACD,GAFD,MAEO;EACLhoB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUie,gBAAV,GAA6B3F,GAA7B;EACD;EACF,CANM;EAiBA,MAAMiN,WAAW,GAAI5sB,MAAD,IAAY;EACrC6sB,EAAAA,gCAAgC;EAChCloB,EAAAA,GAAG,CAAC0C,KAAJ,GAAY,IAAIuc,KAAJ,CAAU;EAAE5jB,IAAAA;EAAF,GAAV,CAAZ;EACAoD,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BpO,GAAG,CAAC0C,KAA9B;EACD,CAJM;;EAMP,MAAMylB,0BAA0B,GAAI9hB,IAAD,IAAU;EAC3C,QAAMwb,QAAQ,GAAGtkB,cAAc,CAAC2C,kBAAf,CAAkCrH,QAAlC,KAA+C,EAAhE,CAD2C;;EAG3C,MAAIkB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAA/B,IAAoC3B,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsB,CAAtB,EAAyBnZ,QAAzB,CAAkC,GAAlC,CAAxC,EAAgF;EAC9E,UAAM0f,WAAW,GAAG,EAApB;EACAA,IAAAA,WAAW,CAAC/hB,IAAD,CAAX,GAAoBwb,QAApB;EACAtkB,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0CuvB,WAA1C;EACA,WAAOA,WAAP;EACD;;EACD,SAAOvG,QAAP;EACD,CAVD;;EAYO,MAAMI,gBAAgB,GAAG,MAAM;EACpC,QAAM5b,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE,WAAO,EAAP;EAAW;;EACtC,QAAMwb,QAAQ,GAAGsG,0BAA0B,CAAC9hB,IAAD,CAA3C;EAEA,SAAOwb,QAAQ,CAACrnB,cAAT,CAAwB6L,IAAxB,IAAgCwb,QAAQ,CAACxb,IAAD,CAAxC,GAAiD,EAAxD;EACD,CANM;EAQA,MAAMkc,iBAAiB,GAAIV,QAAD,IAAc;EAC7C,QAAMxb,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE;EAAQ;;EACnC,QAAMgiB,cAAc,GAAGF,0BAA0B,CAAC9hB,IAAD,CAAjD;EAEA,QAAMsI,MAAM,GAAG,EAAE,GAAG0Z,cAAL;EAAqB,KAAChiB,IAAD,GAAQwb;EAA7B,GAAf;EACAtkB,EAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0C8V,MAA1C;EACD,CAPM;EASA,MAAM2Z,kBAAkB,GAAIjtB,MAAD,IAAY;EAC5C,SAAO,IAAIktB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,UAAMC,UAAU,GAAG,UAACC,SAAD,EAAgD;EAAA,UAApCC,QAAoC,uEAAzB,GAAyB;EAAA,UAApBC,UAAoB,uEAAP,EAAO;EACjE,aAAO,IAAIN,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,YAAIK,QAAQ,GAAG,CAAf;EACA,cAAMC,KAAK,GAAGC,WAAW,CAAC,MAAM;EAC9B3tB,UAAAA,MAAM,CAACkG,KAAP,0BAA+BunB,QAAQ,GAAG,CAA1C;;EACA,cAAIH,SAAS,EAAb,EAAiB;EACfM,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFQ;EAGhB,WAHD,MAGO,IAAIxoB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EAC7BumB,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFsB;EAG9B,WAHM,MAGA,IAAIM,QAAQ,IAAID,UAAhB,EAA4B;EACjCI,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAN,YAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,sCAAV,CAAD,CAAN;EACD;;EACDJ,UAAAA,QAAQ;EACT,SAbwB,EAatBF,QAbsB,CAAzB;EAcD,OAhBM,CAAP;EAiBD,KAlBD;;EAoBA,UAAMO,cAAc,GAAG,MAAM;EAC3B,UAAInpB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBulB,QAAAA,WAAW,CAAC5sB,MAAD,CAAX;EACD;EACF,KAJD;;EAMA,UAAM+tB,qBAAqB,GAAG,MAAM;EAClC,YAAM5O,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;;EACA,UAAI,CAAC4hB,MAAM,CAACgF,aAAZ,EAA2B;EACzBnkB,QAAAA,MAAM,CAACkG,KAAP,CAAa,kCAAb;EACA,eAAO,KAAP;EACD;;EACD,aAAO9C,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,KAAiDxf,GAAG,CAAC0C,KAAJ,KAAc,IAAtE;EACD,KAPD;;EASA,UAAM2mB,SAAS,GAAG,MAAM;EACtBhuB,MAAAA,MAAM,CAACkG,KAAP,CAAa,qBAAb;EACD,KAFD;;EAIA,QAAI+nB,YAAY,GAAG,KAAnB,CAxCsC;;EAyCtC,UAAMC,UAAU,GAAG,MAAM;EACvB,UAAI,CAACD,YAAL,EAAmB;EACjBA,QAAAA,YAAY,GAAG,IAAf;EACAZ,QAAAA,UAAU,CAACU,qBAAD,EAAwB,GAAxB,EAA6B,EAA7B,CAAV,CACGI,IADH,CACQ,MAAM;EACVL,UAAAA,cAAc;EACdX,UAAAA,OAAO;EACR,SAJH,EAKGiB,KALH,CAKSJ,SALT;EAMD;EACF,KAVD;;EAYA,UAAMK,mBAAmB,GAAG,MAAM;EAChC,UAAIjrB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,QAAAA,UAAU;EACX,OAFD,MAEO;EACL5pB,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgCuQ,UAAhC;EACA9qB,QAAAA,QAAQ,CAACua,gBAAT,CACE,kBADF,EAEE,MAAM;EACJ,cAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,YAAAA,UAAU;EACX;EACF,SANH;EAQD;EACF,KAdD;;EAgBAG,IAAAA,mBAAmB;EACpB,GAtEM,CAAP;EAuED,CAxEM;EA0EA,MAAMxB,gCAAgC,GAAG,MAAM;EACpD,MAAI0B,cAAc,CAAClmB,GAAf,CAAmB,cAAnB,MAAuCxI,SAA3C,EAAsD;EACpD0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,cAAtB,EAAsC5K,KAAtC;EACA2K,IAAAA,cAAc,CAACC,MAAf,CAAsB,kBAAtB,EAA0CtP,OAA1C;EACD;EACF,CALM;EAOA,MAAMsM,gBAAgB,GAAG,CAAC3oB,CAAD,EAAI4rB,WAAJ,EAAiBC,UAAjB,KAAgC;EAC9D,QAAMC,gBAAgB,GAAGvrB,QAAQ,CAACwrB,gBAAT,CAA0B/D,UAAnD;EACA,QAAMgE,cAAc,GAAGzrB,QAAQ,CAACwrB,gBAAT,CAA0BpF,SAAjD;EACA,QAAMwB,WAAW,GAAG1mB,MAAM,CAACwqB,UAAP,GAAoBH,gBAAxC;EACA,QAAMI,YAAY,GAAGzqB,MAAM,CAAC0qB,WAAP,GAAqBH,cAA1C;EACA,QAAMI,YAAY,GAAGpsB,CAAC,CAAC8nB,IAAF,IAAU9nB,CAAC,CAACia,MAAF,CAAS6K,qBAAT,EAA/B;EACA,QAAMuH,SAAS,GAAGD,YAAY,CAACE,CAAb,GAAiBR,gBAAnC;EACA,QAAMS,SAAS,GAAGH,YAAY,CAACltB,CAAb,GAAiB8sB,cAAnC;EACA,QAAMQ,YAAY,GAAGJ,YAAY,CAACrH,IAAb,GAAoB+G,gBAAzC;EACA,QAAMW,aAAa,GAAGL,YAAY,CAACvH,KAAb,GAAqBiH,gBAA3C;EACA,QAAMY,WAAW,GAAGN,YAAY,CAACxH,GAAb,GAAmBoH,cAAvC,CAV8D;;EAY9D,QAAMW,cAAc,GAAGP,YAAY,CAAC5D,MAApC;EACA,QAAMoE,cAAc,GAAGR,YAAY,CAAChQ,MAApC;EACA,QAAMyQ,aAAa,GAAGT,YAAY,CAAC3Q,KAAnC;EACA,QAAMqR,cAAc,GAAG;EACrBR,IAAAA,CAAC,EAAED,SAAS,GAAIQ,aAAa,GAAG,CADX;EAErB3tB,IAAAA,CAAC,EAAEqtB,SAAS,GAAIK,cAAc,GAAG;EAFZ,GAAvB;EAIA,QAAMG,iBAAiB,GAAInB,WAAW,GAAG,CAAzC;EACA,QAAMoB,gBAAgB,GAAInB,UAAU,GAAG,CAAvC;EACA,MAAIoB,WAAW,GAAG,KAAlB;EAEA,MAAInE,IAAJ,EAAUC,IAAV;EAEA,QAAMhd,OAAO,GAAG,EAAhB;EAEA;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACE,MAAI4gB,cAAc,GAAGf,WAAjB,IAAgCM,YAApC,EAAkD;EAAE;EAClD,UAAMgB,eAAe,GAAGhB,YAAY,IAAIS,cAAc,GAAGf,WAArB,CAApC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B4gB,cAAc,GAAG5gB,OAA9C,GAAwD4gB,cAAc,GAAGO,eAAhF;EACD,GAHD,MAGO,IAAIR,WAAW,GAAGd,WAAd,IAA6BI,cAAjC,EAAiD;EAAE;EACxD,UAAMkB,eAAe,GAAGR,WAAW,GAAGd,WAAtC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B2gB,WAAW,GAAGd,WAAd,GAA4B7f,OAAzD,GAAmE2gB,WAAW,GAAGd,WAAd,GAA4BsB,eAAtG;EACD,GAHM,MAGA;EACLD,IAAAA,WAAW,GAAG,IAAd;EACAlE,IAAAA,IAAI,GAAG+D,cAAc,CAAC5tB,CAAf,GAAmB6tB,iBAA1B,CAFK;;EAGL,QAAIhE,IAAI,GAAGiD,cAAX,EAA2B;EACzBjD,MAAAA,IAAI,GAAGiD,cAAP;EACD,KAFD,MAEO,IAAIjD,IAAI,GAAG6C,WAAP,GAAqBM,YAAzB,EAAuC;EAC5CnD,MAAAA,IAAI,GAAGmD,YAAY,GAAGN,WAAtB;EACD;EACF;;EAED,MAAIqB,WAAJ,EAAiB;EACf;EACA,UAAME,UAAU,GAAGV,aAAa,GAAGZ,UAAnC;;EACA,QAAIsB,UAAU,IAAIhF,WAAlB,EAA+B;EAC7B,YAAMiF,cAAc,GAAGD,UAAU,GAAGphB,OAAb,IAAwBoc,WAAxB,GAAsCpc,OAAtC,GAAgDoc,WAAW,GAAGgF,UAArF;EACArE,MAAAA,IAAI,GAAG2D,aAAa,GAAGW,cAAvB;EACD,KAHD,MAGO;EACL,YAAMC,SAAS,GAAGb,YAAY,GAAGX,UAAjC;EACA,YAAMuB,cAAc,GAAGC,SAAS,GAAGthB,OAAZ,IAAuB+f,gBAAvB,GAA0C/f,OAA1C,GAAoDshB,SAAS,GAAGvB,gBAAvF;EACAhD,MAAAA,IAAI,GAAGuE,SAAS,GAAGD,cAAnB;EACD;EACF,GAXD,MAWO;EACLtE,IAAAA,IAAI,GAAGgE,cAAc,CAACR,CAAf,GAAmBU,gBAA1B;;EACA,QAAIlE,IAAI,GAAGgD,gBAAX,EAA6B;EAC3B,UAAIU,YAAY,GAAGX,UAAf,IAA6B1D,WAAjC,EAA8C;EAC5CW,QAAAA,IAAI,GAAG0D,YAAP;EACD,OAFD,MAEO;EACL1D,QAAAA,IAAI,GAAGgD,gBAAP;EACD;EACF,KAND,MAMO,IAAIhD,IAAI,GAAG+C,UAAP,GAAoB1D,WAAxB,EAAqC;EAC1C,UAAIsE,aAAa,GAAGZ,UAAhB,IAA8BC,gBAAlC,EAAoD;EAClDhD,QAAAA,IAAI,GAAG2D,aAAa,GAAGZ,UAAvB;EACD,OAFD,MAEO;EACL/C,QAAAA,IAAI,GAAGX,WAAW,GAAG0D,UAArB;EACD;EACF;EACF;;EAED,SAAO;EAAE/C,IAAAA,IAAF;EAAQC,IAAAA;EAAR,GAAP;EACD,CA3FM;EA6FA,MAAM7L,sBAAsB,GAAI8L,EAAD,IAAQ;EAC5C,QAAMlG,GAAG,GAAG5mB,IAAI,CAAC4mB,GAAL,EAAZ;EACA,MAAIwK,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAW,CAACykB,GAAG,GAAGkG,EAAP,IAAa,KAAxB,CAAX;;EACA,MAAIsE,IAAI,GAAG,CAAX,EAAc;EACZ,WAAO,UAAP;EACD;;EACD,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,oBAAwBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAzC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;;EACA,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,kBAAsBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAvC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;EACA,mBAAUA,IAAV,iBAAqBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAtC;EACD,CAfM;EAiBA,MAAMC,uBAAuB,GAAG,MAAM;EAC3C,SAAO1xB,MAAM,CAACgV,IAAP,CAAYxR,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlE,EAAsE8C,MAAtE,GAA+E,CAAtF;EACD,CAFM;EAIA,MAAMooB,QAAQ,4lBAAd;EAIA,MAAMnH,YAAY,4pBAAlB;;EC7QA,MAAM+O,YAAY,GAAG,qFAArB;EACA,MAAMC,QAAQ,GAAG,oFAAjB;EACA,MAAMC,SAAS,GAAG;EACvBC,EAAAA,YAAY,EAAE,uBADS;EAEvBC,EAAAA,YAAY,EAAE,uBAFS;EAGvBC,EAAAA,UAAU,EAAE;EAHW,CAAlB;;ECFA,MAAMC,cAAc,GAAG,UAACC,OAAD,EAAUC,SAAV,EAAqBjP,OAArB,EAAoD;EAAA,MAAtBF,SAAsB,uEAAV,KAAU;;EAChF,MAAImP,SAAS,KAAKhxB,SAAlB,EAA6B;EAC3B;EACA,QAAIgxB,SAAS,CAAC5S,KAAV,KAAoBpe,SAAxB,EAAmC;EACjCnB,MAAAA,MAAM,CAACgV,IAAP,CAAYmd,SAAS,CAAC5S,KAAtB,EAA6BtK,OAA7B,CAAsCnP,QAAD,IAAc;EACjDosB,QAAAA,OAAO,CAAC3S,KAAR,CAAcO,WAAd,CAA0Bha,QAA1B,EAAoCqsB,SAAS,CAAC5S,KAAV,CAAgBzZ,QAAhB,CAApC;EACD,OAFD;EAGD,KAN0B;;;EAS3B,QAAIqsB,SAAS,CAACC,SAAV,KAAwBjxB,SAA5B,EAAuC;EACrC,YAAMkxB,iBAAiB,GAAGH,OAAO,CAAC3S,KAAR,CAAc+S,cAAxC;;EACA,UAAIH,SAAS,CAACC,SAAd,EAAyB;EACvBF,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+B,UAAGD,iBAAH,gBAAiCjsB,IAAjC,EAA/B;EACD,OAFD,MAEO;EACL8rB,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+BD,iBAAiB,CAACrwB,OAAlB,CAA0B,WAA1B,EAAuC,EAAvC,EAA2CoE,IAA3C,EAA/B;EACD;EACF,KAhB0B;;;EAmB3B,QAAI+rB,SAAS,CAAC3P,IAAV,KAAmBrhB,SAAvB,EAAkC;EAChC+wB,MAAAA,OAAO,CAAClQ,SAAR,GAAoBgB,SAAS,GAAGmP,SAAS,CAAC3P,IAAV,CAAeA,IAAlB,GAAyB2P,SAAS,CAAC3P,IAAhE;EACD,KArB0B;;;EAwB3B,QAAI2P,SAAS,CAACI,YAAV,KAA2BpxB,SAA/B,EAA0C;EACxC,YAAM8N,GAAG,GAAGkjB,SAAS,CAACI,YAAV,CAAuBC,QAAnC;EACAN,MAAAA,OAAO,CAACO,OAAR,GAAkBN,SAAS,CAACI,YAAV,CAAuBG,MAAvB,GACd,MAAM;EACN,YAAI,CAAC1P,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,EAA2BsU,KAA3B;EACD,OANe,GAOd,MAAM;EACN,YAAI,CAACP,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAvB;EACD,OAZH;EAaD,KAvC0B;;;EA0C3B,QAAIkjB,SAAS,CAACS,MAAV,KAAqBzxB,SAArB,IAAkC+wB,OAAO,CAAC/O,OAAR,CAAgBxH,WAAhB,OAAkC,KAAxE,EAA+E;EAC7EuW,MAAAA,OAAO,CAACW,GAAR,GAAcV,SAAS,CAACS,MAAxB;EACD;EACF;EACF,CA/CM;EAiDA,MAAME,gBAAgB,GAAIZ,OAAD,IAAa;EAC3C;EACA,MAAIA,OAAO,CAACa,UAAR,KAAuB5xB,SAA3B,EAAsC;EACpC,UAAMoe,KAAK,GAAG7a,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAAd;EACA4P,IAAAA,KAAK,CAACV,SAAN,GAAkBqT,OAAO,CAACa,UAA1B;EACAruB,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BkL,KAA1B;EACD;EACF,CAPM;;EC9CA,MAAM0T,YAAY,GAAG,CAAC3xB,MAAD,EAASjG,SAAT,KAAuB;EACjD,QAAMiU,MAAM,GAAG1J,MAAM,CAACG,QAAP,CAAgBuJ,MAA/B;EACA,QAAM4jB,YAAY,GAAGttB,MAAM,CAACutB,MAA5B;;EAEA,MAAI7jB,MAAM,KAAK,YAAf,EAA6B;EAC3B;EACAhO,IAAAA,MAAM,CAACkG,KAAP,CAAa,6BAAb;EACA5B,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCmU,kBAAnC,EAAuD,KAAvD;;EACA,QAAIF,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE3S,QAAAA,OAAO,EAAE,SAAX;EAAsB4S,QAAAA,SAAS,EAAE1tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,OAAzB,EAAkF,GAAlF;EACD;;EACD;EACD;;EACD,MAAIN,MAAM,KAAK,mBAAf,EAAoC;EAClC1J,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCmU,kBAAnC,EAAuD,KAAvD;;EACA,QAAIF,YAAJ,EAAkB;EAChBA,MAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE3S,QAAAA,OAAO,EAAE,SAAX;EAAsB4S,QAAAA,SAAS,EAAE1tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,OAAzB,EAAkF,GAAlF;EACD;EACF;;EAED,MAAIN,MAAM,KAAK,oBAAf,EAAqC;EACnC,QAAI4jB,YAAJ,EAAkB;EAChB,YAAMK,UAAU,GAAG,QAAnB;EACAL,MAAAA,YAAY,CAACG,WAAb,CAAyB;EACvB3S,QAAAA,OAAO,EAAE,YADc;EAEvBrlB,QAAAA,SAFuB;EAGvBi4B,QAAAA,SAAS,EAAE1tB,MAAM,CAACG,QAAP,CAAgB6J,IAHJ;EAIvB2jB,QAAAA;EAJuB,OAAzB,EAMA,GANA;EAQD;EACF;EACF,CAjCM;;EAmCP,MAAMH,kBAAkB,GAAII,KAAD,IAAW;EACpC,MAAIA,KAAK,CAACxvB,IAAN,IAAcyvB,UAAU,CAACD,KAAK,CAACxvB,IAAN,CAAWsvB,SAAZ,CAA5B,EAAoD;EAClD,UAAMI,SAAS,GAAG,IAAIC,GAAJ,CAAQH,KAAK,CAACxvB,IAAN,CAAWsvB,SAAnB,EAA8BM,MAAhD;;EACA,QAAIJ,KAAK,CAACI,MAAN,KAAiBF,SAArB,EAAgC;EAC9B;EACD;EACF,GALD,MAKO;EACL;EACD;;EACD,MAAIF,KAAK,CAACxvB,IAAN,CAAW0c,OAAX,KAAuB,WAA3B,EAAwC;EAAA;;EACtC;EACA9a,IAAAA,MAAM,CAACiuB,SAAP,GAAmBL,KAAK,CAACxvB,IAAN,CAAW8vB,eAAX,CAA2BD,SAA9C;EACAE,IAAAA,mBAAmB,CACjBP,KAAK,CAACxvB,IAAN,CAAWiL,GADM,yBAEjBukB,KAAK,CAACxvB,IAAN,CAAWgwB,OAFM,qEAEK,IAFL,yBAGjBR,KAAK,CAACxvB,IAAN,CAAWiwB,OAHM,qEAGK,EAHL,EAIjBT,KAAK,CAACxvB,IAAN,CAAW8vB,eAJM,CAAnB;EAMD,GATD,MASO,IAAIN,KAAK,CAACxvB,IAAN,CAAW0c,OAAX,KAAuB,SAA3B,EAAsC;EAC3CwT,IAAAA,mBAAmB,CAACV,KAAK,CAACxvB,IAAP,EAAa,IAAb,CAAnB;EACD;EACF,CArBD;EAsBA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,MAAM+vB,mBAAmB,GAAG,CAAC9kB,GAAD,EAAM+kB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,KAA4C;EACtE,MAAIpvB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCuE,IAAAA,aAAa,CAACllB,GAAD,EAAM+kB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD,GAFD,MAEO;EACLpvB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,kBAA1B,EAA8C,MAAM;EAClD,UAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCuE,QAAAA,aAAa,CAACllB,GAAD,EAAM+kB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD;EACF,KAJD;EAKD;EACF,CAVD;;EAYA,IAAI9V,SAAJ;EACA,IAAIoW,aAAa,GAAG,KAApB;EACA,IAAIC,SAAS,GAAG,KAAhB;EACA;EACA;EACA;;EACA,SAASF,aAAT,CAAwBllB,GAAxB,EAA6B+kB,OAA7B,EAAsCC,OAAtC,EAA+CH,eAA/C,EAAgE;EAC9D,MAAI,CAACM,aAAL,EAAoB;EAClB,QAAIxuB,MAAM,CAAC0uB,OAAX,EAAoB;EAClBD,MAAAA,SAAS,GAAG,IAAZ;EACD;;EACD3vB,IAAAA,QAAQ,CAACkkB,IAAT,CAAc/J,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACsuB,IAAT,CAAcnU,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAAC6vB,eAAT,CAAyB1V,SAAzB,GAAqC,EAArC;EACAb,IAAAA,SAAS,GAAGtZ,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAZ;EACAqO,IAAAA,SAAS,CAAC/iB,EAAV,GAAe,YAAf;EACA+iB,IAAAA,SAAS,CAACuB,KAAV,CAAgBiV,QAAhB,GAA2B,UAA3B,CATkB;;EAUlBxW,IAAAA,SAAS,CAACuB,KAAV,CAAgBZ,OAAhB,GAA0B,MAA1B;EACAja,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B2J,SAA1B;EACA,UAAMyW,WAAW,GAAG9C,YAApB;EACA+C,IAAAA,iBAAiB,CAACD,WAAD,EAAcxlB,GAAd,EAAmB+kB,OAAnB,EAA4BC,OAA5B,EAAqCH,eAArC,CAAjB,CACGrE,IADH,CACQ,MAAM;EACV/Z,MAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ;EACAwQ,MAAAA,aAAa,GAAG,IAAhB;EACD,KAJH,EAKG1E,KALH,CAKUnjB,KAAD,IAAW;EAChBmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAAd,EAA+CA,KAA/C;EACD,KAPH;EAQAooB,IAAAA,OAAO;EACR;EACF;EAED;EACA;EACA;;;EACA,SAASA,OAAT,GAAoB;EAClB,MAAIC,IAAI,GAAGlwB,QAAQ,CAACiL,aAAT,CAAuB,MAAvB,CAAX;EACAilB,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;EACAD,EAAAA,IAAI,CAAChmB,IAAL,GAAY,UAAZ;EACAgmB,EAAAA,IAAI,CAAChlB,IAAL,GAAYgiB,QAAZ;EACAltB,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BugB,IAA1B;EACD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASF,iBAAT,CAA4BD,WAA5B,EAAyCxlB,GAAzC,EAA8C+kB,OAA9C,EAAuDC,OAAvD,EAAgEH,eAAhE,EAAiF;EAC/E,SAAO,IAAItF,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,QAAIoG,MAAM,GAAGpwB,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAb;EACAmlB,IAAAA,MAAM,CAAClmB,IAAP,GAAc,QAAd;EACAkmB,IAAAA,MAAM,CAACjC,GAAP,GAAa4B,WAAb;;EACAK,IAAAA,MAAM,CAACC,MAAP,GAAgB,YAAY;EAC1B,UAAI,OAAOnvB,MAAM,CAACovB,OAAd,KAA0B,UAA9B,EAA0C;EACxCpvB,QAAAA,MAAM,CAACovB,OAAP,CAAe;EAAE/5B,UAAAA,EAAE,EAAE,aAAN;EAAqBgU,UAAAA,GAArB;EAA0B+kB,UAAAA,OAA1B;EAAmCC,UAAAA,OAAnC;EAA4CI,UAAAA,SAA5C;EAAuDP,UAAAA;EAAvD,SAAf;EACArF,QAAAA,OAAO;EACR,OAHD,MAGO;EACLC,QAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,uCAAV,CAAD,CAAN;EACD;EACF,KAPD;;EAQA2F,IAAAA,MAAM,CAACG,OAAP,GAAiB,UAAU1oB,KAAV,EAAiB;EAChCmiB,MAAAA,MAAM,CAACniB,KAAD,CAAN;EACD,KAFD;;EAGA7H,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BygB,MAA1B;EACD,GAhBM,CAAP;EAiBD;EAED;EACA;EACA;EACA;EACA;;;EACO,MAAMZ,mBAAmB,GAAG,CAACgB,gBAAD,EAAmBlS,SAAnB,KAAiC;EAClE,QAAMmS,gBAAgB,GAAG,EAAzB;EACA,QAAMlB,OAAO,GAAGjR,SAAS,GAAGkS,gBAAgB,CAACjB,OAApB,GAA8BiB,gBAAgB,CAACvW,OAAjB,CAAyBsV,OAAhF;EACA,MAAImB,kBAAkB,GAAG,KAAzB;EACA,QAAMlS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE4W,gBAAgB,CAAC3W,OADV;EAEdC,IAAAA,OAAO,EAAE0W,gBAAgB,CAACzW;EAFZ,GAAhB;;EAKA,QAAM4W,WAAW,GAAG,MAAM;EACxB,QAAI,CAACrS,SAAD,IAAc,CAACoS,kBAAnB,EAAuC;EACrCA,MAAAA,kBAAkB,GAAG,IAArB;EACAxvB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMoS,YAAY,GAAIpS,OAAD,IAAa;EAChCtd,IAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD,GAFD;;EAIA,QAAMqS,cAAc,GAAG,CAACrD,OAAD,EAAUsD,QAAV,KAAuB;EAAA;;EAC5C,QAAIA,QAAQ,CAACzC,UAAb,EAAyB;EACvBD,MAAAA,gBAAgB,CAAC0C,QAAD,CAAhB;EACD;;EACD,iCAAIA,QAAQ,CAACC,gBAAb,0DAAI,sBAA2BlxB,IAA/B,EAAqC;EACnC2tB,MAAAA,OAAO,CAACjT,gBAAR,CAAyB,OAAzB,EAAkC,MAAM;EACtC,cAAMyW,cAAc,GAAG;EACrBpX,UAAAA,KAAK,EAAE4W,gBAAgB,CAAC3W,OADH;EAErBC,UAAAA,OAAO,EAAE0W,gBAAgB,CAACzW,UAFL;EAGrBkX,UAAAA,OAAO,EAAE;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACC,gBAAT,CAA0BlxB;EAA3C;EAHY,SAAvB;EAKA+wB,QAAAA,YAAY,CAACI,cAAD,CAAZ;EACD,OAPD;EAQD;;EACD,QAAIF,QAAQ,CAAC1nB,MAAb,EAAqB;EACnB,cAAQ0nB,QAAQ,CAAC1nB,MAAT,CAAgB+nB,MAAxB;EACE,aAAK,MAAL;EACE,cAAI7S,SAAJ,EAAe;EACbkP,YAAAA,OAAO,CAAC4D,SAAR,GAAoBN,QAAQ,CAAC1nB,MAAT,CAAgBmS,IAAhB,CAAqBuC,IAAzC;EACD,WAFD,MAEO;EACL0P,YAAAA,OAAO,CAAC4D,SAAR,GAAoBN,QAAQ,CAAC1nB,MAAT,CAAgBmS,IAApC;EACD;;EACD;;EACF,aAAK,MAAL;EACE8V,UAAAA,gBAAgB,CAACb,gBAAD,EAAmBM,QAAQ,CAAC1nB,MAA5B,EAAoCkV,SAApC,CAAhB;EACA;;EACF,aAAK,MAAL;EACEE,UAAAA,OAAO,CAACyS,OAAR,GAAkB;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACA;EAA1B,WAAlB;EACAvD,UAAAA,cAAc,CAACC,OAAD,EAAUsD,QAAQ,CAAC1nB,MAAT,CAAgBkoB,IAA1B,EAAgC9S,OAAhC,EAAyCF,SAAzC,CAAd;EACA;EAdJ;EAgBD;EACF,GAhCD;;EAkCA,QAAMiT,iBAAiB,GAAIT,QAAD,IAAc;EACtC,QAAIhnB,KAAK,GAAG,CAAZ;EACA,UAAM0nB,UAAU,GAAGjH,WAAW,CAAC,MAAM;EACnC,UAAIkH,YAAJ;;EACA,UAAI;EACFA,QAAAA,YAAY,GAAGzxB,QAAQ,CAAC0xB,aAAT,CAAuBZ,QAAQ,CAACA,QAAhC,CAAf;EACD,OAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,UAAIF,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAeX,QAAf,CAAd;EACAtG,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE1nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwD4R,QAAxD;EACAtG,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD;EACF,KAb6B,EAa3B,GAb2B,CAA9B;EAcD,GAhBD;;EAkBAjC,EAAAA,OAAO,CAAChf,OAAR,CAAgB9R,CAAC,IAAI;EACnB,QAAIA,CAAC,CAAC8L,GAAF,KAAUrJ,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,CAAqBtK,KAArB,CAA2B,GAA3B,EAAgC,CAAhC,CAAd,EAAkD;EAChDnC,MAAAA,CAAC,CAACmzB,YAAF,CAAerhB,OAAf,CAAuBlK,CAAC,IAAI;EAC1B,YAAI,CAACA,CAAC,CAACyqB,QAAF,CAAW7mB,QAAX,CAAoB,YAApB,KAAqC5D,CAAC,CAACyqB,QAAF,CAAW7mB,QAAX,CAAoB,eAApB,CAAtC,KACF5D,CAAC,CAAC+C,MAAF,CAASyoB,WADX,EACwB;EACtBpB,UAAAA,gBAAgB,CAACzrB,IAAjB,CAAsBqB,CAAtB;EACD,SAHD,MAGO;EACL,cAAImnB,OAAJ;;EACA,cAAI;EACFA,YAAAA,OAAO,GAAGxtB,QAAQ,CAAC0xB,aAAT,CAAuBrrB,CAAC,CAACyqB,QAAzB,CAAV;EACD,WAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,cAAInE,OAAJ,EAAa;EACXmD,YAAAA,WAAW;EACXE,YAAAA,cAAc,CAACrD,OAAD,EAAUnnB,CAAV,CAAd;EACD,WAHD,MAGO;EACLkrB,YAAAA,iBAAiB,CAAClrB,CAAD,CAAjB;EACD;EACF;EACF,OAhBD;EAiBD;EACF,GApBD;;EAsBA,QAAMyrB,QAAQ,GAAIhB,QAAD,IAAc;EAC7B,UAAM;EAAEiB,MAAAA,GAAF;EAAOC,MAAAA;EAAP,QAAmBC,mBAAmB,CAACnB,QAAQ,CAACA,QAAV,CAA5C;EACA,QAAIhnB,KAAK,GAAG,CAAZ;EACA,UAAM0nB,UAAU,GAAGjH,WAAW,CAAC,MAAM;EACnC,UAAIiD,OAAO,GAAG,IAAd;;EACA,UAAI;EACF,cAAM0E,SAAS,GAAGlyB,QAAQ,CAAC0xB,aAAT,CAAuBM,OAAvB,CAAlB;EACA,cAAMG,IAAI,GAAGnyB,QAAQ,CAAC0xB,aAAT,0BAAwCM,OAAxC,SAAb;EACAxE,QAAAA,OAAO,GAAG2E,IAAI,IAAID,SAAlB;EACD,OAJD,CAIE,OAAOP,CAAP,EAAU;EACVnE,QAAAA,OAAO,GAAGxtB,QAAQ,CAAC0xB,aAAT,0BAAwCM,OAAxC,SAAV;EACD;;EACD,UAAIxE,OAAJ,EAAa;EACX,cAAM4E,OAAO,GAAGpyB,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAhB;EACAmnB,QAAAA,OAAO,CAACjY,SAAR,GAAoB2W,QAAQ,CAAC1nB,MAAT,CAAgByoB,WAApC;EACA,cAAMQ,UAAU,GAAGD,OAAO,CAACE,iBAA3B;EACA9E,QAAAA,OAAO,CAAC+E,qBAAR,CAA8BR,GAA9B,EAAmCM,UAAnC;;EACA,YAAI,CAAC7E,OAAO,CAACpX,YAAR,CAAqB,aAArB,CAAL,EAA0C;EACxCoX,UAAAA,OAAO,CAAChe,YAAR,CAAqB,aAArB,EAAoCwiB,OAApC;EACD;;EACD,cAAMQ,eAAe,GAAGxyB,QAAQ,CAAC0xB,aAAT,0BAAwCZ,QAAQ,CAACA,QAAjD,SAAxB;EACAH,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAAC2B,eAAD,EAAkB1B,QAAlB,CAAd;EACAtG,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD,OAZD,MAYO,IAAI,EAAE1nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwD8S,OAAxD;EACAxH,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD;EACF,KAzB6B,EAyB3B,GAzB2B,CAA9B;EA0BD,GA7BD;;EA+BA,MAAIf,gBAAgB,CAACxzB,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,UAAMw1B,SAAS,GAAGhC,gBAAgB,CAAC9M,IAAjB,CAAsB,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAU;EAChD,YAAM8U,IAAI,GAAGC,QAAQ,CAAC3nB,CAAC,CAAC8lB,QAAF,CAAWlwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,YAAMgyB,IAAI,GAAGD,QAAQ,CAAC/U,CAAC,CAACkT,QAAF,CAAWlwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,aAAO8xB,IAAI,GAAGE,IAAd;EACD,KAJiB,CAAlB;EAKAH,IAAAA,SAAS,CAACliB,OAAV,CAAkBuhB,QAAlB;EACD;EACF,CArIM;;EAuIP,SAASG,mBAAT,CAA8B92B,KAA9B,EAAqC;EACnC,QAAMkC,KAAK,GAAG,qCAAd;EACA,QAAMqN,KAAK,GAAGvP,KAAK,CAACuP,KAAN,CAAYrN,KAAZ,CAAd;;EAEA,MAAIqN,KAAJ,EAAW;EACT,WAAO;EAAEqnB,MAAAA,GAAG,EAAErnB,KAAK,CAAC,CAAD,CAAZ;EAAiBsnB,MAAAA,OAAO,EAAEtnB,KAAK,CAAC,CAAD;EAA/B,KAAP;EACD;;EACD,SAAO;EAAEqnB,IAAAA,GAAG,EAAE,aAAP;EAAsBC,IAAAA,OAAO,EAAE;EAA/B,GAAP;EACD;EAED;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASX,gBAAT,CAA2Bb,gBAA3B,EAA6CM,QAA7C,EAA0E;EAAA,MAAnBxS,SAAmB,uEAAP,KAAO;EACxE,QAAMuU,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACjZ,KAAP,GAAe4W,gBAAgB,CAAC3W,OAAhC;;EACA,MAAI2W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/B8Y,IAAAA,MAAM,CAAC/Y,OAAP,GAAiB0W,gBAAgB,CAACzW,UAAlC;EACD;;EACD,MAAI+W,QAAQ,CAACgC,IAAT,IAAiB,IAArB,EAA2B;EACzB,QAAIxU,SAAJ,EAAe;EACbuU,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAT,CAAchV,IAA5B;EACD,KAFD,MAEO;EACL+U,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAvB;EACD;EACF;;EACD,QAAMC,YAAY,GAAG,IAAIC,WAAJ,CAAgB,8BAAhB,EAAgD;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAAhD,CAArB;EACA7yB,EAAAA,QAAQ,CAACkzB,aAAT,CAAuBH,YAAvB;EACD;;EAED,SAAShE,UAAT,CAAqBoE,MAArB,EAA6B;EAC3B,MAAI;EACF,UAAM5oB,GAAG,GAAG,IAAI0kB,GAAJ,CAAQkE,MAAR,CAAZ;EACA,WAAOC,OAAO,CAAC7oB,GAAD,CAAd;EACD,GAHD,CAGE,OAAO8oB,IAAP,EAAa;EACb,WAAO,KAAP;EACD;EACF;;EAEM,SAASC,cAAT,CAAyBC,WAAzB,EAAsC;EAC3C,QAAM;EAAEC,IAAAA,qBAAqB,GAAG,EAA1B;EAA8BC,IAAAA,SAAS,GAAG;EAA1C,MAAmDF,WAAzD;EACA,QAAMG,aAAa,GAAG,EAAtB,CAF2C;;EAG3C,MAAIC,UAAU,GAAG,CAAjB,CAH2C;;EAI3C,MAAIC,aAAJ;;EACA,WAASC,YAAT,CAAuBrG,OAAvB,EAAgC;EAC9B,UAAMjG,IAAI,GAAGiG,OAAO,CAACjJ,qBAAR,EAAb;EACA,UAAM;EAAEqH,MAAAA,WAAW,EAAED,YAAf;EAA6BD,MAAAA,UAAU,EAAE9D;EAAzC,QAAyD1mB,MAA/D;EACA,WACEqmB,IAAI,CAACU,MAAL,GAAc,CAAd,IACAV,IAAI,CAACjD,KAAL,GAAa,CADb,IAEAiD,IAAI,CAAClD,GAAL,GAAWsH,YAFX,IAGApE,IAAI,CAAC/C,IAAL,GAAYoD,WAJd;EAMD;;EACD,GAAC,YAAY;EACX,UAAMkM,YAAY,wLAAlB,CADW;;EAUX,UAAMC,OAAO,GAAG5G,SAAS,CAACG,UAA1B;;EACA,QAAI,CAACttB,QAAQ,CAACiV,cAAT,CAAwB8e,OAAxB,CAAL,EAAuC;EACrC,YAAMC,YAAY,GAAGh0B,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAArB;EACA+oB,MAAAA,YAAY,CAACz9B,EAAb,GAAkBw9B,OAAlB;EACAC,MAAAA,YAAY,CAACC,WAAb,GAA2BH,YAA3B;EACA9zB,MAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BqkB,YAA1B;EACD;EACF,GAjBD;;EAkBA,WAASE,gBAAT,CAA2BC,SAA3B,EAAsC;EACpC,aAASC,gBAAT,CAA2BC,gBAA3B,EAA6C;EAC3C,YAAMC,QAAQ,GAAG,EAAjB;EACAD,MAAAA,gBAAgB,CAAC9jB,OAAjB,CAAyBugB,QAAQ,IAAI;EACnC,cAAMyD,eAAe,GAAGv0B,QAAQ,CAAC+mB,gBAAT,CAA0B+J,QAA1B,CAAxB;;EACA,YAAIyD,eAAe,CAACt3B,MAApB,EAA4B;EAC1Bs3B,UAAAA,eAAe,CAAChkB,OAAhB,CAAwBmT,EAAE,IAAI;EAC5B,gBAAImQ,YAAY,CAACnQ,EAAD,CAAhB,EAAsB;EACpB4Q,cAAAA,QAAQ,CAACtvB,IAAT,CAAc0e,EAAd;EACD;EACF,WAJD;EAKA,iBAAOgQ,aAAa,CAAC5C,QAAD,CAApB,CAN0B;EAO3B,SAPD,MAOO;EACL4C,UAAAA,aAAa,CAAC5C,QAAD,CAAb,GAA0B,KAA1B,CADK;EAEN;EACF,OAZD;EAaA0D,MAAAA,WAAW,CAACF,QAAD,CAAX;EACD;;EACD,aAASG,eAAT,GAA4B;EAC1BL,MAAAA,gBAAgB,CAAC94B,MAAM,CAACgV,IAAP,CAAYojB,aAAZ,CAAD,CAAhB;EACAC,MAAAA,UAAU;;EACV,UAAIr4B,MAAM,CAACgV,IAAP,CAAYojB,aAAZ,EAA2Bz2B,MAA3B,KAAsC,CAAtC,IAA2C02B,UAAU,GAAG,EAA5D,EAAgE;EAC9DA,QAAAA,UAAU,GAAG,CAAb;EACAnJ,QAAAA,aAAa,CAACoJ,aAAD,CAAb;EACD;EACF;;EACDQ,IAAAA,gBAAgB,CAACD,SAAD,CAAhB;;EACA,QAAI74B,MAAM,CAACgV,IAAP,CAAYojB,aAAZ,EAA2Bz2B,MAA/B,EAAuC;EACrC22B,MAAAA,aAAa,GAAGrJ,WAAW,CAACkK,eAAD,EAAkB,GAAlB,CAA3B;EACD;EACF;;EACD,WAASD,WAAT,CAAsBF,QAAtB,EAAgC;EAC9BA,IAAAA,QAAQ,CAAC/jB,OAAT,CAAiBmT,EAAE,IAAIA,EAAE,CAACgR,SAAH,CAAaC,GAAb,CAAiBxH,SAAS,CAACE,YAA3B,CAAvB;EACAre,IAAAA,UAAU,CAAC,MAAM;EACfslB,MAAAA,QAAQ,CAAC/jB,OAAT,CAAiBmT,EAAE,IAAI;EACrBA,QAAAA,EAAE,CAACgR,SAAH,CAAah1B,MAAb,CAAoBytB,SAAS,CAACE,YAA9B;EACA3J,QAAAA,EAAE,CAACgR,SAAH,CAAaC,GAAb,CAAiBxH,SAAS,CAACC,YAA3B;EACD,OAHD;EAID,KALS,EAKPqG,SALO,CAAV,CAF8B;EAQ/B;;EACD,WAASmB,gBAAT,GAA6B;EAC3B,QAAIC,YAAY,GAAG70B,QAAQ,CAACqB,QAAT,CAAkB6J,IAArC;EACA,UAAMiW,QAAQ,GAAG,IAAI2T,gBAAJ,CAAqB,MAAM;EAC1C,UAAID,YAAY,KAAK70B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAvC,EAA6C;EAC3C2pB,QAAAA,YAAY,GAAG70B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAjC;EACAgpB,QAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;EACF,KALgB,CAAjB;EAMArS,IAAAA,QAAQ,CAACxG,OAAT,CAAiB3a,QAAQ,CAACkkB,IAA1B,EAAgC;EAAE6Q,MAAAA,SAAS,EAAE,IAAb;EAAmBC,MAAAA,OAAO,EAAE;EAA5B,KAAhC;EACD;;EACD9zB,EAAAA,MAAM,CAACqZ,gBAAP,CAAwB,kBAAxB,EAA4C,MAAM;EAChDqa,IAAAA,gBAAgB;EACjB,GAFD;EAGAV,EAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;;ECpaM,MAAMyB,0BAAN,SAAyChc,WAAzC,CAAqD;EAC1D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKf4+B,QALe,GAKJ,IALI;EAAA,SAMf9b,MANe,GAMN,IANM;EAEb,SAAKA,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAKD,MAAI8V,OAAJ,GAAe;EACb,WAAO,KAAK2F,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI3F,OAAJ,CAAanyB,GAAb,EAAkB;EAChB,QAAI,KAAK83B,QAAL,KAAkB,IAAtB,EAA4B;EAC1B,WAAKA,QAAL,GAAgB93B,GAAhB;EACA,WAAK+3B,YAAL;EACD;EACF;;EAEDA,EAAAA,YAAY,GAAI;EACd,SAAK/b,MAAL,CAAYe,SAAZ,GAAwB,KAAKib,gBAAL,EAAxB;;EACA,QAAI,KAAKC,UAAL,KAAoB,KAAxB,EAA+B;EAC7B,WAAK9a,gBAAL,CAAsB,OAAtB,EAA+B,MAAM;EACnC,cAAMP,UAAU,GAAG,KAAKuV,OAAL,CAAa+F,OAAhC;;EACA,YAAItb,UAAJ,EAAgB;EACd,eAAKuV,OAAL,CAAaruB,MAAb,GAAsBA,MAAM,CAAC6Z,IAAP,CAAYf,UAAZ,EAAwB,QAAxB,CAAtB,GAA0D9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B8O,UAAxF;EACD;;EACD9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAND;EAOD;;EACD5Y,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;EACD;;EAEDsb,EAAAA,gBAAgB,GAAI;EAClB,4HAIgB,KAAK7F,OAAL,CAAa+F,OAAb,GAAuB,SAAvB,GAAmC,EAJnD,2DAOgB,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAkC,MAPlD,oXAqBM,KAAKhG,OAAL,CAAajU,GAAb,GAAmB,KAAKiU,OAAL,CAAajU,GAAhC,GAAsC,EArB5C,uIAyBkD,KAAKiU,OAAL,CAAaiG,eAzB/D,6CA0BwB,KAAKjG,OAAL,CAAakG,cA1BrC,uCA2BkB,KAAKlG,OAAL,CAAaiG,eA3B/B,yHA6BM,KAAKjG,OAAL,CAAahU,IAAb,GAAoB,KAAKgU,OAAL,CAAahU,IAAjC,GAAwC,EA7B9C;EAgCD;;EAnEyD;;ECCrD,MAAMma,4BAAN,SAA2Czc,WAA3C,CAAuD;EAC5D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAQf4iB,OARe,GAQL,IARK;EAAA,SASfyc,SATe,GASH,IATG;EAAA,SAUfvc,MAVe,GAUN,IAVM;EAAA,SAWfwc,MAXe,GAWN,CAXM;EAAA,SAYfC,sBAZe,GAYU,CAAC,CAZX;EAAA,SAafC,YAbe,GAaA,CAbA;EAAA,SAcfC,SAde,GAcH,IAdG;EAAA,SAefC,oBAfe,GAeQ,IAfR;EAEb,SAAK5c,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;;EACA,QAAI0R,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuD6J,0BAAvD;EACD;EACF;;EAWD,MAAIvb,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAK64B,cAAL;EACD;EACF;;EAED,MAAI1G,OAAJ,GAAe;EACb,WAAO,KAAK7V,MAAL,CAAYO,OAAZ,CAAoBsV,OAA3B;EACD;;EAED,MAAItV,OAAJ,GAAe;EACb,WAAO,KAAKP,MAAL,CAAYO,OAAnB;EACD;;EAEDgc,EAAAA,cAAc,GAAI;EAChB,SAAKL,MAAL,GAAc,KAAKrG,OAAL,CAAatyB,MAA3B;EACA,SAAKmc,MAAL,CAAYe,SAAZ,GAAwB,KAAK+b,SAAL,EAAxB;EACA,UAAMC,QAAQ,GAAG,KAAKC,kBAAL,EAAjB;;EACA,QAAI,KAAKnc,OAAL,CAAaoc,WAAjB,EAA8B;EAC5BF,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAKrc,OAAL,CAAasc,WAAtD;EACD;;EACD,QAAI,KAAKtc,OAAL,CAAauc,aAAjB,EAAgC;EAC9BL,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAKrc,OAAL,CAAawc,gBAAtD;EACAN,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAKrc,OAAL,CAAayc,iBAAtD;EACD;;EACD,SAAKf,SAAL,GAAiBQ,QAAjB;EACA,SAAK/c,MAAL,CAAYzJ,WAAZ,CAAwBwmB,QAAxB;EACA,SAAKQ,UAAL;EACA,SAAKC,kBAAL,GAdgB;;EAgBhB,SAAKC,cAAL;EACA,SAAKC,YAAL;EACA51B,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,MAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK;EAAnD,KAA1C;EACD;;EAED4c,EAAAA,UAAU,GAAI;EACZ,SAAKhB,SAAL,CAAepb,gBAAf,CAAgC,OAAhC,EAA0CuU,KAAD,IAAW;EAClD,YAAMiI,OAAO,GAAGjI,KAAK,CAACpV,MAAN,CAAanjB,EAA7B;;EACA,UAAIwgC,OAAO,CAACvV,UAAR,CAAmB,kBAAnB,CAAJ,EAA4C;EAC1C,cAAMwV,QAAQ,GAAG,CAACD,OAAO,CAACn2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAlB;;EACA,YAAIo2B,QAAQ,KAAK,KAAKlB,YAAtB,EAAoC;EAClC,eAAKD,sBAAL,GAA8B,KAAKC,YAAnC;EACA,eAAKA,YAAL,GAAoBkB,QAApB;EACA,eAAKJ,kBAAL;EACA,eAAKC,cAAL;EACD;EACF,OARD,MAQO,IAAIE,OAAO,CAACvV,UAAR,CAAmB,iBAAnB,CAAJ,EAA2C;EAChDuV,QAAAA,OAAO,CAACE,QAAR,CAAiB,OAAjB,IAA4B,KAAKC,QAAL,EAA5B,GAA8C,KAAKC,QAAL,EAA9C;EACA,aAAKN,cAAL;EACD,OAHM,MAGA,IAAIE,OAAO,CAAC/1B,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAA5B,EAA+B;EACpC,cAAMkE,IAAI,GAAG,CAAC6xB,OAAO,CAACn2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAd;EACA,cAAM2E,KAAK,GAAGL,IAAI,GAAG,CAArB;;EACA,YAAIhE,MAAM,CAAC8Z,MAAP,CAAc/L,SAAlB,EAA6B;EAC3B/N,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,YAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,YAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK,UAAnD;EAA+Dqd,YAAAA,YAAY,EAAElyB;EAA7E,WAA3C;EACD;;EACD,cAAMqF,GAAG,GAAG,KAAKglB,OAAL,CAAahqB,KAAb,EAAoB+vB,OAAhC;;EACA,YAAI/qB,GAAG,KAAK,EAAZ,EAAgB;EACd,eAAKglB,OAAL,CAAahqB,KAAb,EAAoBrE,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,CAA7B,GAA0DrJ,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAjF;EACD;EACF;EACF,KAxBD;EAyBD;;EAEDusB,EAAAA,YAAY,GAAI;EACd,SAAKnB,SAAL,CAAepb,gBAAf,CAAgC,YAAhC,EAA+CuU,KAAD,IAAW;EACvD,WAAKkH,oBAAL,GAA4BhnB,UAAU,CAAC,MAAM;EAC3C,aAAK+mB,SAAL,GAAiBvL,aAAa,CAAC,KAAKuL,SAAN,CAA9B;EACD,OAFqC,EAEnC,GAFmC,CAAtC;EAGD,KAJD;;EAMA,SAAKJ,SAAL,CAAepb,gBAAf,CAAgC,YAAhC,EAA+CuU,KAAD,IAAW;EACvDuI,MAAAA,YAAY,CAAC,KAAKrB,oBAAN,CAAZ;;EACA,UAAI,KAAKD,SAAL,KAAmBt5B,SAAvB,EAAkC;EAChC,aAAKo6B,cAAL;EACD;EACF,KALD;EAMD;;EAEDT,EAAAA,kBAAkB,GAAI;EACpB,UAAMD,QAAQ,GAAGn2B,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAjB;EACAkrB,IAAAA,QAAQ,CAAC3mB,YAAT,CAAsB,OAAtB,EAA+B,UAA/B;EAEA,SAAK+f,OAAL,CAAahf,OAAb,CAAqB,CAAC0iB,MAAD,EAASnnB,CAAT,KAAe;EAClC,YAAMwrB,MAAM,GAAGt3B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAf;EACAqsB,MAAAA,MAAM,CAAC5C,SAAP,CAAiBC,GAAjB,CAAqB,gBAArB;EACA2C,MAAAA,MAAM,CAACjC,UAAP,GAAoB,KAApB;EACAiC,MAAAA,MAAM,CAAC9nB,YAAP,CAAoB,IAApB,2BAA4C1D,CAAC,GAAG,CAAhD;EACAwrB,MAAAA,MAAM,CAAC/H,OAAP,GAAiB0D,MAAjB;EACAkD,MAAAA,QAAQ,CAACxmB,WAAT,CAAqB2nB,MAArB;EACD,KAPD;EASA,WAAOnB,QAAP;EACD;;EAEDD,EAAAA,SAAS,GAAI;EAAA;;EACX,+SAac,kEAAMxc,MAAN,sFAAcO,OAAd,8EAAuBsb,SAAvB,IAAmC,KAAK7b,MAAL,CAAYO,OAAZ,CAAoBsb,SAAvD,GAAmE,MAbjF,qJAqBI,KAAKtb,OAAL,CAAasd,UArBjB,qBAsBI,KAAKtd,OAAL,CAAaud,YAtBjB;EAyBD;;EAEDZ,EAAAA,kBAAkB,GAAI;EACpB,QAAI,KAAKf,sBAAL,KAAgC,CAAC,CAArC,EAAwC;EACtC,YAAM4B,QAAQ,GAAG,KAAKre,MAAL,CAAYnE,cAAZ,0BAA6C,KAAK4gB,sBAAlD,EAAjB;EACA,YAAM6B,UAAU,GAAG,KAAKte,MAAL,CAAYnE,cAAZ,4BAA+C,KAAK4gB,sBAApD,EAAnB;EACA4B,MAAAA,QAAQ,CAAC/C,SAAT,CAAmBh1B,MAAnB,CAA0B,0BAA1B;;EACA,UAAIg4B,UAAJ,EAAgB;EACdA,QAAAA,UAAU,CAAChD,SAAX,CAAqBh1B,MAArB,CAA4B,4BAA5B;EACD;EACF;;EACD,UAAMwF,IAAI,GAAG,KAAKkU,MAAL,CAAYnE,cAAZ,0BAA6C,KAAK6gB,YAAlD,EAAb;EACA,UAAMjY,MAAM,GAAG,KAAKzE,MAAL,CAAYnE,cAAZ,4BAA+C,KAAK6gB,YAApD,EAAf;EACA5wB,IAAAA,IAAI,CAACwvB,SAAL,CAAeC,GAAf,CAAmB,0BAAnB;;EACA,QAAI9W,MAAJ,EAAY;EACVA,MAAAA,MAAM,CAAC6W,SAAP,CAAiBC,GAAjB,CAAqB,4BAArB;EACD;EACF;;EAEDkC,EAAAA,cAAc,GAAI;EAChBrM,IAAAA,aAAa,CAAC,KAAKuL,SAAN,CAAb;EACA,SAAKA,SAAL,GAAiBxL,WAAW,CAAC,MAAM;EACjC,WAAK2M,QAAL;EACD,KAF2B,EAEzB,KAAKjd,OAAL,CAAa0d,UAAb,GAA0B,KAAK1d,OAAL,CAAa0d,UAAb,GAA0B,IAApD,GAA2D,IAFlC,CAA5B;EAGD;;EAEDT,EAAAA,QAAQ,GAAI;EACV,SAAKU,IAAL,CAAU,KAAK9B,YAAf,EAA6B,CAAC,KAAKA,YAAL,GAAoB,CAArB,IAA0B,KAAKF,MAA5D;EACD;;EAEDuB,EAAAA,QAAQ,GAAI;EACV,SAAKS,IAAL,CAAU,KAAK9B,YAAf,EAA6B,KAAKA,YAAL,GAAoB,CAAjD;EACD;;EAED8B,EAAAA,IAAI,CAAEC,IAAF,EAAQC,GAAR,EAAa;EACf,SAAKjC,sBAAL,GAA8BgC,IAA9B;EACA,SAAK/B,YAAL,GAAoBgC,GAApB;;EACA,QAAIA,GAAG,KAAK,CAAZ,EAAe;EACb,WAAKhC,YAAL,GAAoB,KAAKF,MAAzB;EACD;;EACD,SAAKgB,kBAAL;EACD;;EAxL2D;;ECEvD,MAAMmB,2BAA2B,GAAIvH,gBAAD,IAAsB;EAAA;;EAC/D,MAAIrF,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuD6J,0BAAvD;EACD;;EACD,QAAMjgB,KAAK,4BAAGwb,gBAAgB,CAACvW,OAAjB,CAAyBjF,KAA5B,yEAAqCwb,gBAAgB,CAACvW,OAAjB,CAAyB+d,WAAzE;EACA,QAAMC,QAAQ,GAAGj4B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAjB;EACAgtB,EAAAA,QAAQ,CAACre,KAAT,GAAiB4W,gBAAgB,CAAC3W,OAAlC;EACAoe,EAAAA,QAAQ,CAACne,OAAT,GAAmB0W,gBAAgB,CAACzW,UAApC;EACAke,EAAAA,QAAQ,CAAC1C,SAAT,GAAqB/E,gBAAgB,CAACvW,OAAjB,CAAyBsb,SAA9C;EACA0C,EAAAA,QAAQ,CAAC1I,OAAT,GAAmBiB,gBAAgB,CAACvW,OAAjB,CAAyBsV,OAAzB,CAAiC,CAAjC,CAAnB;EACA,QAAM2I,WAAW,GAAG1H,gBAAgB,CAACvW,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC0xB,aAAT,CAAuB1c,KAAvB,CAAtF;EACAkjB,EAAAA,WAAW,CAAC/d,SAAZ,GAAwB,EAAxB;EACA+d,EAAAA,WAAW,CAACvoB,WAAZ,CAAwBsoB,QAAxB;EACD,CAbM;EAeA,MAAME,6BAA6B,GAAI3H,gBAAD,IAAsB;EAAA;;EACjE,MAAIrF,cAAc,CAAClmB,GAAf,CAAmB,iCAAnB,MAA0DxI,SAA9D,EAAyE;EACvE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,iCAAtB,EAAyDsK,4BAAzD;EACD;;EACD,QAAM1gB,KAAK,6BAAGwb,gBAAgB,CAACvW,OAAjB,CAAyBjF,KAA5B,2EAAqCwb,gBAAgB,CAACvW,OAAjB,CAAyB+d,WAAzE;EACA,QAAM7B,QAAQ,GAAGn2B,QAAQ,CAACiL,aAAT,CAAuB,iCAAvB,CAAjB;EACAkrB,EAAAA,QAAQ,CAACzc,MAAT,GAAkB8W,gBAAlB;EACA,QAAMlX,SAAS,GAAGkX,gBAAgB,CAACvW,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC0xB,aAAT,CAAuB1c,KAAvB,CAApF;EACAsE,EAAAA,SAAS,CAACa,SAAV,GAAsB,EAAtB;EACAb,EAAAA,SAAS,CAAC3J,WAAV,CAAsBwmB,QAAtB;EACD,CAVM;EAYA,MAAMiC,oBAAoB,GAAI5H,gBAAD,IAAsB;EACxD,QAAMqC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACjZ,KAAP,GAAe4W,gBAAgB,CAAC3W,OAAhC;;EACA,MAAI2W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/B8Y,IAAAA,MAAM,CAAC/Y,OAAP,GAAiB0W,gBAAgB,CAACzW,UAAlC;EACD;;EACD,MAAIyW,gBAAgB,CAACnV,UAAjB,CAA4BqD,EAA5B,IAAkC,IAAtC,EAA4C;EAC1CmU,IAAAA,MAAM,CAACnU,EAAP,GAAY8R,gBAAgB,CAACnV,UAAjB,CAA4BqD,EAAxC;EACD;;EACD,QAAMqU,YAAY,GAAG,IAAIC,WAAJ,CAAgB,uBAAhB,EAAyC;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAAzC,CAArB;EACA7yB,EAAAA,QAAQ,CAACkzB,aAAT,CAAuBH,YAAvB;EACD,CAXM;EAaA,MAAMsF,gBAAgB,GAAG,CAAC7H,gBAAD,EAAmB5zB,MAAnB,KAA8B;EAC5D,QAAM;EAAEqd,IAAAA,OAAF;EAAWJ,IAAAA,OAAO,EAAEye,MAApB;EAA4Bve,IAAAA,UAAU,EAAEwe;EAAxC,MAAsD/H,gBAAgB,IAAI,EAAhF;EAEA,QAAMxb,KAAK,GAAGiF,OAAO,CAACjF,KAAR,IAAiB,EAA/B;EACA,QAAMua,OAAO,GAAGtV,OAAO,CAACsV,OAAR,CAAgB,CAAhB,CAAhB;EACA,QAAMhU,IAAI,GAAGgU,OAAO,CAAChU,IAArB;;EAEA,MAAI,CAACvG,KAAD,IAAU,CAACuG,IAAf,EAAqB;EACnB3e,IAAAA,MAAM,CAACiL,KAAP,CAAa,4BAAb;EACA;EACD;;EAED,MAAI6oB,kBAAkB,GAAG,KAAzB;EACA,QAAMlS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE0e,MADO;EAEdxe,IAAAA,OAAO,EAAEye;EAFK,GAAhB;;EAKA,QAAM5H,WAAW,GAAG,MAAM;EACxB,QAAI,CAACD,kBAAL,EAAyB;EACvBA,MAAAA,kBAAkB,GAAG,IAArB;EACAxvB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAM+S,iBAAiB,GAAIvc,KAAD,IAAW;EACnC,QAAIlL,KAAK,GAAG,CAAZ;EACA,UAAM0nB,UAAU,GAAGjH,WAAW,CAAC,MAAM;EACnC,YAAMkH,YAAY,GAAGzxB,QAAQ,CAAC0xB,aAAT,CAAuB1c,KAAvB,CAArB;;EACA,UAAIyc,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXc,QAAAA,YAAY,CAACL,SAAb,GAAyB7V,IAAzB;EACAiP,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE1nB,KAAF,IAAW,EAAf,EAAmB;EACxBlN,QAAAA,MAAM,CAACsiB,GAAP,iDAAoDlK,KAApD;EACAwV,QAAAA,aAAa,CAACgH,UAAD,CAAb;EACD;EACF,KAV6B,EAU3B,GAV2B,CAA9B;EAWD,GAbD;;EAeAD,EAAAA,iBAAiB,CAACvc,KAAD,CAAjB;EACD,CAzCM;EA2CA,MAAMwjB,UAAU,GAAIhI,gBAAD,IAAsB;EAC9C,QAAMqC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACjZ,KAAP,GAAe4W,gBAAgB,CAAC3W,OAAhC;EACA,QAAM0V,OAAO,GAAGiB,gBAAgB,CAACvW,OAAjB,CAAyBsV,OAAzB,CAAiC,CAAjC,CAAhB;EACA,QAAMuD,IAAI,GAAGvD,OAAO,CAACuD,IAArB;;EACA,MAAItC,gBAAgB,CAACzW,UAArB,EAAiC;EAC/B8Y,IAAAA,MAAM,CAAC/Y,OAAP,GAAiB0W,gBAAgB,CAACzW,UAAlC;EACD;;EACD,MAAIyW,gBAAgB,CAACvW,OAAjB,CAAyB6Y,IAAzB,IAAiC,IAArC,EAA2C;EACzCD,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;EACD;;EACD,QAAM2F,SAAS,GAAG,IAAIzF,WAAJ,CAAgB,4BAAhB,EAA8C;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAA9C,CAAlB;EACA7yB,EAAAA,QAAQ,CAACkzB,aAAT,CAAuBuF,SAAvB;EACD,CAbM;;EChFA,MAAMC,gBAAgB,GAAG,CAACC,MAAD,EAASnI,gBAAT,KAA8B;EAC5D,QAAMoI,IAAI,GAAG13B,MAAM,CAAC8Z,MAAP,CAAc2d,MAAd,CAAb;;EACA,MAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;EAC9B,QAAIpI,gBAAgB,CAACvW,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCka,MAAAA,IAAI,CAACpI,gBAAgB,CAACvW,OAAjB,CAAyByE,EAA1B,CAAJ;EACD,KAFD,MAEO;EACLka,MAAAA,IAAI;EACL;EACF;EACF,CATM;EAWA,MAAMC,0BAA0B,GAAG,CAACrI,gBAAD,EAAmBjV,IAAnB,KAA4B;EACpE,QAAM6U,MAAM,qDACkBI,gBAAgB,CAAC3W,OADnC,8oCAoB8D2W,gBAAgB,CAACzW,UApB/E,iIAAZ;EA0BA,SAAOwB,IAAI,CAACje,OAAL,CAAa,iBAAb,YAAmC8yB,MAAnC,UAAP;EACD,CA5BM;EA8BA,MAAM0I,eAAe,GAAG,CAACC,SAAD,EAAYC,QAAZ,KAAyB;EACtD,QAAMlpB,OAAO,GAAGF,iBAAiB,EAAjC;EACA,QAAMa,SAAS,GAAGX,OAAO,CAACkpB,QAAD,CAAP,CAAkB1yB,MAApC;;EACA,MAAImK,SAAS,IAAI,IAAb,IAAqBuoB,QAAzB,EAAmC;EACjC,SAAK,MAAMn4B,GAAX,IAAkBk4B,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAACh9B,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,eAAO4P,SAAS,CAACsoB,SAAS,CAACl4B,GAAD,CAAV,CAAhB;;EACA,YAAI/B,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAJ,EAAwC;EACtC,gBAAMwY,WAAW,GAAGjR,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAApB;EACA,gBAAMgQ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,cAAI2Y,WAAW,CAACxI,IAAD,CAAX,IAAqBwI,WAAW,CAACxI,IAAD,CAAX,CAAkBoxB,QAAlB,CAArB,IAAoD5oB,WAAW,CAACxI,IAAD,CAAX,CAAkBoxB,QAAlB,EAA4BD,SAAS,CAACl4B,GAAD,CAArC,CAAxD,EAAqG;EACnG,mBAAOuP,WAAW,CAACxI,IAAD,CAAX,CAAkBoxB,QAAlB,EAA4BD,SAAS,CAACl4B,GAAD,CAArC,CAAP;EACA/B,YAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF;EACF;EACF;EACF;;EACDJ,EAAAA,kBAAkB,CAACF,OAAD,CAAlB;EACD,CAnBM;EAqBA,MAAMmpB,aAAa,GAAIC,SAAD,IAAe;EAC1C,MAAI33B,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,IAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,QAAIwJ,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsB41B,SAAtB;EACA;EACD;EACF;;EACD,OAAK,MAAMr8B,GAAX,IAAkBq8B,SAAlB,EAA6B;EAC3B,QAAIA,SAAS,CAACn9B,cAAV,CAAyBc,GAAzB,CAAJ,EAAmC;EACjC,YAAMs8B,SAAS,GAAG53B,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,CAAlB;EACA,YAAMu8B,SAAS,GAAGF,SAAS,CAACr8B,GAAD,CAA3B;;EACA,UAAI0E,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,KAA4B,IAAhC,EAAsC;EACpC,YAAIu8B,SAAS,CAAC,CAAD,CAAT,IAAgB,IAAhB,IAAwBA,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAApD,EAAyD;EACvD53B,UAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bu8B,SAA3B;EACD;EACF,OAJD,MAIO;EACL73B,QAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bu8B,SAA3B;EACD;EACF;EACF;EACF,CArBM;EAuBA,MAAMC,mBAAmB,GAAG,CAAC7I,gBAAD,EAAmB8I,QAAnB,KAAgC;EACjE,QAAMh6B,IAAI,GAAG,EAAb;EACAA,EAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,EAAAA,IAAI,CAACmK,OAAL,GAAehQ,mBAAf;EACA6F,EAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,KAAC5Q,OAAD,GAAWg3B,gBAAgB,CAAC3W;EAA9B,GAAf;;EACA,MAAI2W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/Bza,IAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,MAAAA,UAAU,EAAEyW,gBAAgB,CAACzW;EAAhD,KAAf;EACD;;EACDuf,EAAAA,QAAQ,CAACjvB,YAAT,CAAsB/K,IAAtB;EACD,CATM;EAWA,MAAMi6B,eAAe,GAAG,CAACjE,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+CykB,QAA/C,EAAyDC,OAAzD,EAAkEvgB,QAAlE,KAA+E;EAC5G,MAAImc,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,QAAIqE,UAAJ;EACA,QAAIC,aAAJ;;EACA,QAAIH,QAAJ,EAAc;EACZE,MAAAA,UAAU,GAAGH,UAAb;EACD,KAFD,MAEO,IAAIA,UAAU,KAAK,IAAnB,EAAyB;EAC9BI,MAAAA,aAAa,GAAGJ,UAAU,CAACnqB,sBAAX,CAAkC,UAAlC,CAAhB;;EACA,UAAIuqB,aAAa,IAAI,IAAjB,IAAyBA,aAAa,CAAC38B,MAAd,KAAyB,CAAtD,EAAyD;EACvD08B,QAAAA,UAAU,GAAGC,aAAa,CAAC,CAAD,CAA1B;EACD;EACF;;EACD,UAAMjB,MAAM,GAAGnI,gBAAgB,CAACvW,OAAjB,CAAyB0e,MAAxC;EACA,UAAMra,SAAS,GAAGkS,gBAAgB,CAACvW,OAAjB,CAAyB4f,OAA3C;;EACA,QAAIvb,SAAS,IAAI,IAAjB,EAAuB;EACrBgX,MAAAA,OAAO,IAAIwE,eAAe,CAACJ,OAAD,EAAUvgB,QAAV,CAA1B;EACD;;EAED,QAAIwgB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,CAAC5L,OAAX,GAAqB,MAAM;EACzB;EACA,YAAI4K,MAAM,IAAI,IAAd,EAAoB;EAClB;EACA,cAAIra,SAAS,IAAI,IAAjB,EAAuB;EACrBtQ,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BmnB,OAA9B;EACD;;EACDoD,UAAAA,gBAAgB,CAACC,MAAD,EAASnI,gBAAT,CAAhB,CALkB;;EAOlB3b,UAAAA,WAAW,CAAC,IAAD,EAAOG,KAAP,EAAcmE,QAAQ,CAACe,SAAvB,CAAX;EACD,SARD,MAQO;EACL,gBAAM6f,MAAM,GAAGvJ,gBAAgB,CAACvW,OAAjB,CAAyB4f,OAAzB,GAAmCrJ,gBAAgB,CAACvW,OAAjB,CAAyBqb,OAA5D,GAAsE,IAAIrG,GAAJ,CAAQuB,gBAAgB,CAACvW,OAAjB,CAAyBqb,OAAjC,EAA0C0E,YAA1C,CAAuD/0B,GAAvD,CAA2D,GAA3D,CAArF;EACA,gBAAM8L,UAAU,GAAGyf,gBAAgB,CAAC3W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;;EAEA,cAAIm5B,MAAM,KAAK,YAAf,EAA6B;EAC3B,gBAAI,CAACvJ,gBAAgB,CAACvW,OAAjB,CAAyB4f,OAA9B,EAAuC;EACrC34B,cAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,gBAAAA,KAAK,EAAE4W,gBAAgB,CAAC3W,OAA1B;EAAmCC,gBAAAA,OAAO,EAAE0W,gBAAgB,CAACzW;EAA7D,eAAlD;EACD,aAH0B;;;EAK3B7Y,YAAAA,MAAM,CAAC+N,SAAP,CAAiBgrB,aAAjB,CAA+Bj1B,IAA/B,CAAoC;EAClCk1B,cAAAA,UAAU,EAAE;EADsB,aAApC;EAGArlB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WATD,MASO,IAAI6f,MAAM,KAAK,MAAf,EAAuB;EAC5B;EACAllB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WAHM,MAGA;EACL;EACA,gBAAIsW,gBAAgB,CAACvW,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAYua,OAAZ,EAAqB,QAArB;;EACA,kBAAI9E,gBAAgB,CAACvW,OAAjB,CAAyB,aAAzB,CAAJ,EAA6C;EAC3CpF,gBAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD;;EACD,kBAAI,CAACsW,gBAAgB,CAACvW,OAAjB,CAAyB4f,OAA9B,EAAuC;EACrC34B,gBAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,kBAAAA,KAAK,EAAE4W,gBAAgB,CAAC3W,OAA1B;EAAmCC,kBAAAA,OAAO,EAAE0W,gBAAgB,CAACzW;EAA7D,iBAAlD;EACD;EACF,aARD,MAQO;EACL7Y,cAAAA,MAAM,CAACG,QAAP,GAAkBi0B,OAAlB;EACD;EACF;EACF;EACF,OAzCD;EA0CD;EACF;EACF,CA/DM;EAiEA,MAAMwE,eAAe,GAAG,CAACJ,OAAD,EAAUvgB,QAAV,KAAuB;EACpD,QAAMjW,OAAO,GAAGw2B,OAAO,CAAC/xB,OAAR,EAAhB;;EACA,QAAMwyB,UAAU,GAAGhhB,QAAQ,CAACpS,sBAAT,EAAnB;;EACA,SAAO,aAAavG,kBAAkB,CAAC2L,gBAAgB,CAACjJ,OAAO,GAAG,GAAV,GAAgBi3B,UAAU,CAACpkB,CAA3B,GAA+B,GAA/B,GAAqCokB,UAAU,CAAC9zB,CAAjD,CAAjB,CAAtC;EACD,CAJM;;ECvKA,MAAM+zB,oBAAoB,GAAG,CAAC5J,gBAAD,EAAmBrX,QAAnB,KAAgC;EAClE,QAAMnE,KAAK,GAAG,kBAAd;EACA,QAAMqlB,cAAc,GAAGr6B,QAAQ,CAACiL,aAAT,CAAuB,wBAAvB,CAAvB;EACAovB,EAAAA,cAAc,CAACj0B,OAAf,GAAyB+S,QAAzB;EACAkhB,EAAAA,cAAc,CAAC3gB,MAAf,GAAwB8W,gBAAxB;EACA,QAAM0H,WAAW,GAAGl4B,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAApB;EACAkjB,EAAAA,WAAW,CAAC/d,SAAZ,GAAwB,EAAxB;EACA+d,EAAAA,WAAW,CAACrd,KAAZ,CAAkBW,UAAlB,GAA+B,QAA/B;EACA0c,EAAAA,WAAW,CAACvoB,WAAZ,CAAwB0qB,cAAxB;EACD,CATM;;ECAA,MAAMC,kBAAkB,GAAIzf,KAAD,IAAW;EAC3C,QAAM0f,gBAAgB,GAAG1f,KAAK,CAAC2f,IAAN,CAAWC,aAAX,GAA2B5f,KAAK,CAAC2f,IAAN,CAAWE,MAAX,CAAkBC,WAAlB,GAAgC,CAA3D,GAA+D,CAAxF;EACA,QAAMC,WAAW,GAAG,KAAK,CAAzB,CAF2C;;EAG3C,QAAMC,gBAAgB,GAAG,MAAMD,WAAN,GAAoBL,gBAA7C;EAEA,+GAMwB1f,KAAK,CAACigB,OAAN,CAAcC,KAAd,IAAuB,oBAN/C,gLAgBwBlgB,KAAK,CAAC2f,IAAN,CAAWO,KAhBnC,qCAiBqBlgB,KAAK,CAAC2f,IAAN,CAAWQ,YAjBhC,qDAmBaH,gBAnBb,2HAuBMhgB,KAAK,CAAC2f,IAAN,CAAWC,aAAX,qCACgB5f,KAAK,CAAC2f,IAAN,CAAWE,MAAX,CAAkBC,WADlC,wCAEgB9f,KAAK,CAAC2f,IAAN,CAAWE,MAAX,CAAkBrb,WAFlC,+CAIE,EA3BR,yfAsDaxE,KAAK,CAACiD,IAAN,CAAWwB,UAtDxB,gKA8DazE,KAAK,CAACiD,IAAN,CAAWyB,gBA9DxB,4kBAyFwB1E,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4Bzb,WAzFpD,6BA0Fa3E,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4BhX,SA1FzC,qCA2FqBpJ,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4BD,YA3FjD,wBA4FMngB,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4BR,aAA5B,uCAEkB5f,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4BP,MAA5B,CAAmCC,WAFrD,0CAGkB9f,KAAK,CAAC2C,OAAN,CAAcyd,aAAd,CAA4BP,MAA5B,CAAmCrb,WAHrD,mDAME,eAlGR,wEAsGwBxE,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8B1b,WAtGtD,6BAuGa3E,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8BjX,SAvG3C,qCAwGqBpJ,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8BF,YAxGnD,wBAyGMngB,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8BT,aAA9B,uCAEkB5f,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8BR,MAA9B,CAAqCC,WAFvD,0CAGkB9f,KAAK,CAAC2C,OAAN,CAAc0d,eAAd,CAA8BR,MAA9B,CAAqCrb,WAHvD,mDAME,eA/GR;EAsHD,CA3HM;EA6HA,MAAM8b,iBAAiB,GAAItgB,KAAD,IAAW;EAC1C,kHAIwBA,KAAK,CAAC2f,IAAN,CAAWpb,eAJnC;EAuED,CAxEM;;EC7HA,MAAMgc,QAAQ,GAAG,MAAM;EAC5B,QAAMC,EAAE,GAAGvc,SAAS,CAACwc,SAArB;EACA,SAAOD,EAAE,CAACpxB,QAAH,CAAY,QAAZ,KAAyBoxB,EAAE,CAACpxB,QAAH,CAAY,OAAZ,CAAhC;EACD,CAHM;EAKA,MAAMsxB,SAAS,GAAG,MAAM;EAC7B,QAAMF,EAAE,GAAGvc,SAAS,CAACwc,SAArB;EACA,SAAOD,EAAE,CAACpxB,QAAH,CAAY,SAAZ,KAA0BoxB,EAAE,CAACpxB,QAAH,CAAY,OAAZ,CAAjC;EACD,CAHM;EAKA,MAAMuxB,QAAQ,GAAG,MAAM;EAC5B,QAAMH,EAAE,GAAGvc,SAAS,CAACwc,SAArB,CAD4B;;EAG5B,SAAOD,EAAE,CAACpxB,QAAH,CAAY,QAAZ,KACA,CAACoxB,EAAE,CAACpxB,QAAH,CAAY,OAAZ,CADD,IAEA,CAACoxB,EAAE,CAACpxB,QAAH,CAAY,OAAZ,CAFD,IAGA,CAACoxB,EAAE,CAACpxB,QAAH,CAAY,QAAZ,CAHD,IAIA,CAACoxB,EAAE,CAACpxB,QAAH,CAAY,SAAZ,CAJR;EAKD,CARM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECMQ,MAAMwxB,mBAAN,SAAkC5yB,KAAlC,CAAwC;EAQrDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXwJ,MAAAA,OAFW;EAGXF,MAAAA,OAHW;EAIXqI,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,0EAAuB,6DAAvB;EACA,sEAAqB,IAArB;EACA,oEAAkBnF,MAAlB;EACA,8DAAexM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACD;;EAEDvJ,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CwjC,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,sEAAmBA,WAAnB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAa7zB,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED8zB,EAAAA,MAAM,GAAgB;EAAA,QAAd/W,OAAc,uEAAJ,EAAI;EACpB,UAAM;EAAEgX,MAAAA,MAAF;EAAU1B,MAAAA;EAAV,QAAyBtV,OAA/B;EACAiX,IAAAA,UAAU,6BAAC,IAAD,qDAAe,IAAf,uDAA8B,IAA9B,2BAA6CD,MAA7C,EAAqD1B,UAArD,8BAAiE,IAAjE,gCAAV;EACD;;EAED3wB,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,kGAAmB,IAAnB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAaDuyB,EAAAA,yBAAyB,CAAEC,oBAAF,EAAwBC,iBAAxB,EAA2CC,aAA3C,EAA0DC,cAA1D,EAA0E;EACjG,QAAId,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,4GAAsCQ,oBAAtC,EAA4DC,iBAA5D;EACD,KAFD,MAEO,IAAIR,QAAQ,EAAZ,EAAgB;EACrB,8FAA+BO,oBAA/B,EAAqDE,aAArD,EAAoEC,cAApE,EAAoFF,iBAApF;EACD;EACF;;EAEDG,EAAAA,uBAAuB,CAAEC,oBAAF,EAAwB;EAC7C,sEAAqBA,oBAArB;EACD;;EA4aDC,EAAAA,cAAc,CAAEC,OAAF,EAAWF,oBAAX,EAAiC;EAC7C76B,IAAAA,GAAG,CAACkC,cAAJ,GAAqB64B,OAArB;;EACA,QAAIF,oBAAoB,IAAI,IAA5B,EAAkC;EAChC,WAAKD,uBAAL,CAA6BC,oBAA7B;EACD;;EACD,QAAI76B,GAAG,CAACkC,cAAJ,IAAsBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAvC,EAA4D;EAC1D,0GAAqCvC,GAAG,CAACsC,QAAJ,CAAa63B,WAAlD;EACD,KAFD,MAEO,IAAI,CAACn6B,GAAG,CAACkC,cAAL,IAAuBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAxC,EAA6D;EAClE,8DAAa+D,KAAb,CAAmB,4FAAnB;EACD;EACF;;EAvfoD;;+CA4CtC6zB,aAAa;EAC1B,MAAIn6B,GAAG,CAACkC,cAAJ,IAAsBi4B,WAAW,CAACz+B,MAAZ,GAAqB,CAA/C,EAAkD;EAChD,wGAAqCy+B,WAArC;EACD,GAFD,MAEO,IAAIn6B,GAAG,CAACkC,cAAJ,IAAsB,IAAtB,IAA8Bi4B,WAAW,CAACz+B,MAAZ,GAAqB,CAAvD,EAA0D;EAC/DsE,IAAAA,GAAG,CAACsC,QAAJ,CAAaC,mBAAb,GAAmC,IAAnC;EACAvC,IAAAA,GAAG,CAACsC,QAAJ,CAAa63B,WAAb,GAA2BA,WAAW,CAAC5sB,KAAZ,EAA3B;EACD,GAHM,MAGA,IAAIvN,GAAG,CAACkC,cAAJ,KAAuB,KAAvB,IAAgCi4B,WAAW,CAACz+B,MAAZ,GAAqB,CAAzD,EAA4D;EACjE,4DAAa4K,KAAb,CAAmB,+DAAnB;EACD;EACF;;yEAc4B;EAC3B,SAAO,iBAAiB3G,MAAxB;EACD;;uEAE0B66B,sBAAsBE,eAAeC,gBAAgBF,mBAAmB;EACjG,MAAI,6FAAoC,mEAAsB,IAA9D,EAAoE;EAClEl9B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACAmkB,IAAAA,SAAS,CAACyd,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDjR,IAApD,CAA0D0R,YAAD,IAAkB;EACzEv7B,MAAAA,MAAM,CAACw7B,YAAP,CAAoBC,iBAApB,GAAwC5R,IAAxC,CAA8C6R,UAAD,IAAgB;EAC3D,YAAIA,UAAU,KAAK,SAAnB,EAA8B;EAC5B,gBAAMC,YAAY,GAAG;EACnBT,YAAAA,oBAAoB,8BAAE,IAAF,+BADD;EAEnBU,YAAAA,eAAe,EAAE;EAFE,WAArB;;EAIA,kEAAaC,IAAb,CAAkB,YAAY59B,IAAI,CAACC,SAAL,CAAey9B,YAAf,CAA9B;;EACA,gBAAMG,gBAAgB,GAAG,MAAM;EAC7BP,YAAAA,YAAY,CAACQ,WAAb,CAAyBC,SAAzB,CAAmCL,YAAnC,EAAiD9R,IAAjD,CAAuDtV,YAAD,IAAkB;EACtE,sEAAasnB,IAAb,CAAkB,0CAA0CtnB,YAAY,CAAC0nB,QAAzE;;EACA,sEAAaJ,IAAb,CAAkB,wBAAwB59B,IAAI,CAACC,SAAL,CAAe;EACvDg9B,gBAAAA,oBAAoB,8BAAE,IAAF,+BADmC;EAEvDU,gBAAAA,eAAe,EAAE;EAFsC,eAAf,CAA1C;;EAIA,sEAAaC,IAAb,CAAkB,iCAAiC59B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA,oBAAM2nB,gBAAgB,GAAGj+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EAEA2nB,cAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bv8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAha,cAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDwjC,gBAAxD;;EACA,wEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,kBAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,gBAAAA,oBAAoB;EACrB;;EACD,oBAAMuB,mBAAmB,GAAGt9B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,kBAAIqoB,mBAAJ,EAAyB;EACvBA,gBAAAA,mBAAmB,CAAChuB,UAApB,CAA+BC,WAA/B,CAA2C+tB,mBAA3C;EACD;EACF,aArBD;EAsBD,WAvBD;;EAyBA,gBAAMf,aAAa,GAAGE,YAAY,CAACc,UAAb,IAA2Bd,YAAY,CAACe,OAAxC,IAAmDf,YAAY,CAACgB,MAAtF;;EACA,cAAIlB,aAAa,IAAIA,aAAa,CAACmB,KAAd,KAAwB,WAA7C,EAA0D;EACxD;EACAV,YAAAA,gBAAgB;EACjB,WAHD,MAGO,IAAIT,aAAJ,EAAmB;EACxB;EACAA,YAAAA,aAAa,CAAChiB,gBAAd,CAA+B,aAA/B,EAA+CuU,KAAD,IAAW;EACvD,kBAAIA,KAAK,CAACpV,MAAN,CAAagkB,KAAb,KAAuB,WAA3B,EAAwC;EACtC,wEAAaX,IAAb,CAAkB,yDAAlB;;EACAC,gBAAAA,gBAAgB;EACjB;EACF,aALD;EAMD;EACF;EACF,OA9CD;EA+CD,KAhDD;EAiDD,GAnDD,MAmDO;EACL;EACA,QAAI,OAAOf,aAAP,KAAyB,WAA7B,EAA0C;EACxC,8DAAap0B,KAAb,CAAmB,0CAAnB;EACD;;EACD,QAAI,OAAOq0B,cAAP,KAA0B,WAA9B,EAA2C;EACzC,8DAAar0B,KAAb,CAAmB,oDAAnB;EACD;;EACD,QAAI,YAAY3G,MAAZ,IAAsB,sBAAsBA,MAAM,CAACy8B,MAAvD,EAA+D;EAC7Dz8B,MAAAA,MAAM,CAACy8B,MAAP,CAAcC,gBAAd,CAA+BjB,iBAA/B,CACET,cADF,EAEED,aAFF,EAEiB,EAFjB,EAEsBxmB,YAAD,IAAkB;EACnC,YAAIA,YAAY,CAACmnB,UAAb,KAA4B,SAAhC,EAA2C;EACzC,gBAAMQ,gBAAgB,GAAGj+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EACA2nB,UAAAA,gBAAgB,CAACD,QAAjB,GAA4B1nB,YAAY,CAACooB,WAAzC;EACAT,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;;EACA,kEAAaf,IAAb,CAAkB,wBAAwB59B,IAAI,CAACC,SAAL,CAAe;EACvD88B,YAAAA,cADuD;EAEvDD,YAAAA;EAFuD,WAAf,CAA1C;;EAIA,kEAAac,IAAb,CAAkB,iCAAiC59B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA3W,UAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDwjC,gBAAxD;;EAEA,oEAAcC,aAAd,CAA4BD,gBAA5B;;EACA,kEAAaL,IAAb,CAAkB,+CAA+CtnB,YAAY,CAACooB,WAA9E;EACD,SAdD,MAcO,IAAIpoB,YAAY,CAACmnB,UAAb,KAA4B,QAAhC,EAA0C;EAC/C,kEAAaG,IAAb,CAAkB,sCAAlB;EACD;EACF,OApBH;EAqBD;EACF;EACF;;qFAKiChB,sBAAsBC,mBAAmB;EACzE,MAAI+B,iBAAiB,GAAG,EAAxB;;EAEA,MAAI,mBAAmBjf,SAAvB,EAAkC;EAChCA,IAAAA,SAAS,CAACyd,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDjR,IAApD,CAA0D0R,YAAD,IAAkB;EACzE,UAAI,OAAOuB,iBAAP,KAA6B,WAAjC,EAA8C;EAAE;EAC9C;EACA;EACA,eAAO,IAAIlU,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAAC0S,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD;;EACDsB,MAAAA,iBAAiB,GAAGtB,YAAY,CAACwB,KAAjC,CANyE;EASzE;EACA;;EACA,YAAMC,YAAY,GAAG,wBAArB;EACA,YAAMC,qBAAqB,GAAGD,YAAY,CAAC5hC,IAAb,CAAkB0/B,iBAAlB,CAA9B;;EACA,UAAImC,qBAAJ,EAA2B;EACzB,eAAOrf,SAAS,CAACyd,aAAV,CAAwB6B,KAA/B;EACD,OAFD,MAEO;EACL,YAAIhD,QAAQ,EAAZ,EAAgB;EACd,iBAAO,IAAItR,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAAC0S,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD,SAFD,MAEO;EACL,iBAAO3d,SAAS,CAACyd,aAAV,CAAwB8B,gBAAxB,EAAP;EACD;EACF;EACF,KAtBD,EAsBGtT,IAtBH,CAsBSuT,yBAAD,IAA+B;EACrC;EACA,UAAI/C,SAAS,MAAM1yB,KAAK,CAACC,OAAN,CAAcw1B,yBAAd,CAAnB,EAA6D;EAC3DA,QAAAA,yBAAyB,GAAGA,yBAAyB,CAAC1c,MAA1B,CAAkC9V,CAAD,IAAOA,CAAC,CAACmyB,KAAF,KAAYF,iBAApD,EAAuE,CAAvE,CAA5B;EACD;;EACD,YAAMlB,YAAY,GAAG;EAAEC,QAAAA,eAAe,EAAE;EAAnB,OAArB;;EAEA,UAAI,mEAAsB,IAA1B,EAAgC;EAC9BD,QAAAA,YAAY,CAACT,oBAAb,GAAoC9wB,qBAAqB,6BAAC,IAAD,gCAAzD;EACD;;EAEDgzB,MAAAA,yBAAyB,CAACrB,WAA1B,CAAsCC,SAAtC,CAAgDL,YAAhD,EACG9R,IADH,CACStV,YAAD,IAAkB;EACtB,gEAAasnB,IAAb,CAAkB,0CAA0CtnB,YAAY,CAAC0nB,QAAzE;;EACA,gEAAar6B,KAAb,CAAmB,wBAAwB3D,IAAI,CAACC,SAAL,CAAey9B,YAAf,CAA3C;;EACA,gEAAa/5B,KAAb,CAAmB,iCAAiC3D,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAApD,EAHsB;;;EAMtB,cAAM2nB,gBAAgB,GAAGj+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB,CANsB;;EAStB,YAAI2lB,QAAQ,EAAZ,EAAgB;EACdgC,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bv8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAskB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;EACD,SAHD,MAGO,IAAIvC,SAAS,EAAb,EAAiB;EACtB6B,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bv8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAskB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,SAA3B;EACD;;EACDh/B,QAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDwjC,gBAAxD;;EACA,kEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,YAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,UAAAA,oBAAoB;EACrB;;EACD,cAAMuB,mBAAmB,GAAGt9B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,YAAIqoB,mBAAJ,EAAyB;EACvBA,UAAAA,mBAAmB,CAAChuB,UAApB,CAA+BC,WAA/B,CAA2C+tB,mBAA3C;EACD;EACF,OA3BH,EA2BKtS,KA3BL,CA2BYnjB,KAAD,IAAW;EAClB;EACAy2B,QAAAA,yBAAyB,CAACrB,WAA1B,CAAsCsB,eAAtC,GAAwDxT,IAAxD,CAA8DtV,YAAD,IAAkB;EAC7E,cAAIA,YAAY,KAAK,IAArB,EAA2B;EACzBA,YAAAA,YAAY,CAAC+oB,WAAb,GAA2BzT,IAA3B,CAAiC0T,UAAD,IAAgB;EAC9C;EACA,sEAAa1B,IAAb,CAAkB,2BAAlB;;EACA77B,cAAAA,MAAM,CAAC+N,SAAP,CAAiBgrB,aAAjB,CAA+Bj1B,IAA/B,CAAoC;EAClCk1B,gBAAAA,UAAU,EAAE;EADsB,eAApC;EAGD,aAND,EAMGlP,KANH,CAMUvrB,CAAD,IAAO;EACd;EACA,sEAAaoI,KAAb,CAAmB,0BAA0BpI,CAA7C;EACD,aATD;EAUD;EACF,SAbD;;EAcA,gEAAaoI,KAAb,CAAmB,wBAAwBA,KAA3C;EACD,OA5CH;EA6CD,KA9ED,EA8EGmjB,KA9EH,CA8EUrpB,GAAD,IAAS;EAChB,8DAAakG,KAAb,CAAmB,uCAAuClG,GAA1D;EACD,KAhFD;EAiFD;EACF;;mDAEiB;EAChB,QAAM+8B,SAAS,GAAG1+B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAlB;EACAyzB,EAAAA,SAAS,CAAClvB,YAAV,CAAuB,MAAvB,EAA+B,iBAA/B;EACAkvB,EAAAA,SAAS,CAAClvB,YAAV,CAAuB,IAAvB,EAA6B,eAA7B;EACAkvB,EAAAA,SAAS,CAAClvB,YAAV,CAAuB,KAAvB,8BAA8B,IAA9B,qCAJgB;;EAOhBxP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqD+uB,SAArD;EAEA,SAAOA,SAAP;EACD;;yDAEoB;EACnB,QAAMA,SAAS,GAAG1+B,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAlB;EACAypB,EAAAA,SAAS,CAACpvB,UAAV,CAAqBC,WAArB,CAAiCmvB,SAAjC;EACD;;mFAEgChD,aAAa;EAC5C;EACA,MAAIiD,SAAJ;EACA,MAAIC,QAAJ;EACA,MAAIC,YAAJ;EACA,MAAIC,gBAAJ;EACA,MAAIC,aAAJ;EACA,MAAI7E,UAAJ;EACA,MAAI8E,qBAAJ;EACA,MAAIC,UAAJ;EACA,MAAIC,cAAJ;EACA,MAAInD,oBAAJ;EACA,MAAIC,iBAAJ;EACA,MAAImD,cAAJ;EACA,MAAIC,eAAJ;EACA,MAAInD,aAAJ;EACA,MAAIoD,qBAAJ;EACA,QAAMC,yBAAyB,GAAG9D,QAAQ,MAAO,iBAAiBt6B,MAAhC,IAA2CpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA3C,IAAuG,oEAAuB,IAAhK;;EAEA,MAAI+gC,WAAW,CAACz+B,MAAZ,KAAuB,CAA3B,EAA8B;EAC5B,QAAI5B,QAAQ,CAACqgC,WAAW,CAAC,CAAD,CAAZ,CAAZ,EAA8B;EAC5B,YAAM6D,QAAQ,GAAG7D,WAAW,CAAC,CAAD,CAA5B;EACAiD,MAAAA,SAAS,GAAGY,QAAQ,CAACZ,SAArB;EACAC,MAAAA,QAAQ,GAAGW,QAAQ,CAACX,QAApB;EACAC,MAAAA,YAAY,GAAGU,QAAQ,CAACV,YAAxB;EACAC,MAAAA,gBAAgB,GAAGS,QAAQ,CAACT,gBAA5B;EACAC,MAAAA,aAAa,GAAGQ,QAAQ,CAACR,aAAzB;EACA7E,MAAAA,UAAU,GAAGqF,QAAQ,CAACrF,UAAtB;EACA8E,MAAAA,qBAAqB,GAAGO,QAAQ,CAACP,qBAAjC;EACAC,MAAAA,UAAU,GAAGM,QAAQ,CAACN,UAAtB;EACAC,MAAAA,cAAc,GAAGK,QAAQ,CAACL,cAA1B;EACAnD,MAAAA,oBAAoB,GAAGwD,QAAQ,CAACxD,oBAAhC;EACAC,MAAAA,iBAAiB,GAAGuD,QAAQ,CAACvD,iBAA7B;EACAmD,MAAAA,cAAc,GAAGI,QAAQ,CAACJ,cAA1B;EACAC,MAAAA,eAAe,GAAGG,QAAQ,CAACH,eAA3B;EACAnD,MAAAA,aAAa,GAAGsD,QAAQ,CAACtD,aAAzB;EACAoD,MAAAA,qBAAqB,GAAGE,QAAQ,CAACF,qBAAjC;EACD;EACF,GAnBD,MAmBO;EACLV,IAAAA,SAAS,GAAGjD,WAAW,CAAC,CAAD,CAAvB;EACAkD,IAAAA,QAAQ,GAAGlD,WAAW,CAAC,CAAD,CAAtB;EACAmD,IAAAA,YAAY,GAAGnD,WAAW,CAAC,CAAD,CAA1B;EACAoD,IAAAA,gBAAgB,GAAGpD,WAAW,CAAC,CAAD,CAA9B;EACAqD,IAAAA,aAAa,GAAGrD,WAAW,CAAC,CAAD,CAA3B;EACAxB,IAAAA,UAAU,GAAGwB,WAAW,CAAC,CAAD,CAAxB;EACAsD,IAAAA,qBAAqB,GAAGtD,WAAW,CAAC,CAAD,CAAnC;EACD;;EAED,MAAIxB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,IAAAA,UAAU,GAAG,KAAb;EACD;;EAED,MAAI8B,iBAAiB,IAAI,IAAzB,EAA+B;EAC7BA,IAAAA,iBAAiB,GAAG,kBAApB;EACD,GAtD2C;;;EAyD5C,MAAI,OAAOld,SAAS,CAACyd,aAAjB,KAAmC,WAAvC,EAAoD;EAClD;EACD;;EAED,QAAMiD,MAAM,GAAGL,cAAc,IAAI,IAAlB,IAA0BC,eAAe,IAAI,IAA5D,CA7D4C;;EAgE5C,MAAIl+B,MAAM,CAACG,QAAP,CAAgBo+B,QAAhB,KAA6B,QAA7B,IAAyCz/B,QAAQ,CAACqB,QAAT,CAAkBC,QAAlB,KAA+B,WAAxE,IAAuF,CAACk+B,MAA5F,EAAoG;EAClG,4DAAa33B,KAAb,CAAmB,oEAAnB;;EACA;EACD;EAED;EACJ;EACA;EACA;;;EACI,MAAIuzB,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,QAAI,6BAAC,IAAD,yDAAJ,EAAuC;EACrC,8DAAa1zB,KAAb,CAAmB,wDAAnB;;EACA;EACD;EACF,GA9E2C;;;EAkF5C,MAAI,CAAC23B,MAAL,EAAa;EACX,UAAME,eAAe,IAAG,kBAAkBx+B,MAArB,CAArB;;EACA,QAAI,CAACw+B,eAAD,IAAoBhD,YAAY,IAAI,IAAxC,EAA8C;EAC5C,8DAAa70B,KAAb,CAAmB,sDAAnB;;EACA;EACD,KALU;;;EAOX,QAAI60B,YAAY,CAACE,UAAb,KAA4B,SAA5B,KAA0C0C,yBAAyB,IAAIlE,QAAQ,EAArC,IAA2CG,SAAS,EAA9F,CAAJ,EAAuG;EACrG;EACA,WAAKO,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD,KAJD,MAIO,IAAI3C,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACA;EACD;;EAED,QAAI1C,UAAJ,EAAgB;EACd,WAAK4B,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD;EACF,GAtG2C;;;EAyG5C,MAAI,CAACV,SAAD,IAAc,CAACC,QAAf,IAA2B,CAACC,YAA5B,IAA4C,CAACC,gBAAjD,EAAmE;EACjE,4DAAaj3B,KAAb,CAAmB,wFAAnB;;EACA;EACD,GA5G2C;;;EA+G5C,MAAIk3B,aAAa,IAAI,IAAjB,IAAyB,CAACA,aAAa,CAACr0B,KAAd,CAAoB,gBAApB,CAA9B,EAAqE;EACnEq0B,IAAAA,aAAa,GAAG,SAAhB,CADmE;EAEpE,GAjH2C;;;EAoH5C,QAAMxc,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;;EACA,MAAKe,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAD,IAAiD,IAArD,EAA2D;EACzDkE,IAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD,GAFD,MAEO;EACL,QAAIyc,qBAAqB,IAAI,IAA7B,EAAmC;EACjC;EACAA,MAAAA,qBAAqB,GAAG,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAtC;EACD;;EAED,UAAMW,aAAa,GAAG7gC,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAtB;;EACA,QAAI2nB,GAAG,GAAGod,aAAN,GAAsBX,qBAA1B,EAAiD;EAC/C,UAAI,CAACxD,QAAQ,EAAb,EAAiB;EACf;EACD,OAH8C;;;EAK/C,UAAI8D,yBAAyB,IAAI,oEAAuB,IAAxD,EAA8D;EAC5D;EACD;EACF,KARD,MAQO;EACLxgC,MAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD;EACF;;EAED,MAAIiZ,QAAQ,kCAAM,IAAN,yDAAR,IAAkD,oEAAuB,IAA7E,EAAmF;EACjF18B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACD;;EAED,MAAI6kC,MAAJ,EAAY;EACV;EACA,UAAMI,WAAW,GAAG5/B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAApB;EACA20B,IAAAA,WAAW,CAACpwB,YAAZ,CAAyB,OAAzB,EAAkC,eAAlC;EACAowB,IAAAA,WAAW,CAACpwB,YAAZ,CAAyB,KAAzB,EAAgC4vB,eAAhC;EACAp/B,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BiwB,WAA1B;EACA1+B,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoCuU,KAAD,IAAW;EAC5C,UAAIA,KAAK,CAACxvB,IAAN,IAAc,IAAlB,EAAwB;EACtB,YAAIzD,GAAG,GAAG,EAAV;;EACA,YAAI;EACFA,UAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAWsvB,KAAK,CAACxvB,IAAjB,CAAN;EACD,SAFD,CAEE,OAAOG,CAAP,EAAU;EACV;EACA;EACD;;EACD,YAAI5D,GAAG,CAAC6hC,KAAJ,IAAa,IAAjB,EAAuB;EACrB,cAAI7hC,GAAG,CAACgkC,IAAJ,KAAa,IAAb,IAAqBhkC,GAAG,CAAC6hC,KAAJ,KAAc,KAAvC,EAA8C;EAC5C,gBAAI5+B,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,sEAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,YAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,gFAAsBq1B,MAAtB,GAA+B,MAAM;EACnCvxB,cAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C;EACAkG,cAAAA,MAAM,CAAC4+B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClC1iB,gBAAAA,KAAK,EAAEshB,SAD2B;EAElCza,gBAAAA,IAAI,EAAE0a,QAF4B;EAGlCoB,gBAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,gBAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,gBAAAA,gBAAgB,EAAEA;EALgB,eAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,oBAAIA,OAAJ,EAAa;EACX;EACA,sBAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,oBAAAA,UAAU;EACX,mBAJU;;;EAMX/9B,kBAAAA,MAAM,CAAC6Z,IAAP,CAAYokB,cAAZ;EACD,iBAPD,MAOO;EACL,sBAAI,OAAOD,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,oBAAAA,cAAc;EACf;EACF;;EACD;EACD,eApBD;EAqBD,aAvBD;EAwBD;EACF;EACF;EACF,KA5CD,EA4CG,KA5CH;EA6CD,GAnDD,MAmDO;EACL,QAAIpgC,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,8DAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,IAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,wEAAsBq1B,MAAtB,GAA+B,MAAM;EACnCvxB,MAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C,EADmC;;EAGnCkG,MAAAA,MAAM,CAAC4+B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClC1iB,QAAAA,KAAK,EAAEshB,SAD2B;EAElCza,QAAAA,IAAI,EAAE0a,QAF4B;EAGlCoB,QAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,QAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,QAAAA,gBAAgB,EAAEA;EALgB,OAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,YAAIA,OAAJ,EAAa;EACX;EACA,cAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,YAAAA,UAAU;EACX;;EACD,eAAKnD,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACD,SAND,MAMO;EACL,cAAI,OAAOH,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,YAAAA,cAAc;EACf;EACF;;EACD;EACD,OAnBD;EAoBD,KAvBD;EAwBD;EACF;;EC3fI,MAAMgB,WAAW,GAAG,0pDAApB;EACA,MAAMC,kBAAkB,GAAG,s3CAA3B;;ECMP,IAAIC,YAAY,GAAG,IAAnB;EACA,IAAIxE,MAAM,GAAG,kBAAb;EACA,IAAIyE,mBAAmB,GAAG,IAA1B;EAEO,MAAMC,oBAAoB,GAAG,CAACC,aAAD,EAAgB3jC,MAAhB,EAAwBsJ,OAAxB,KAAoC;EACtE,QAAMs6B,WAAW,GAAG1hC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EAEA,QAAM+lC,gBAAgB,GAAG,MAAM;EAC7Bl/B,IAAAA,GAAG,CAACkD,UAAJ,GAAiB87B,aAAjB;EACAzhC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzG,cAAhC,EAAgD6lC,aAAhD;EACD,GAHD;;EAKA,MAAIA,aAAa,CAACjiB,SAAlB,EAA6B;EAC3BmiB,IAAAA,gBAAgB;EAChB5E,IAAAA,UAAU,CAACj/B,MAAD,EAAS,IAAT,EAAesJ,OAAf,CAAV;EACD,GAHD,MAGO,IAAI/G,IAAI,CAACC,SAAL,CAAeohC,WAAf,MAAgCrhC,IAAI,CAACC,SAAL,CAAemhC,aAAf,CAApC,EAAmE;EACxEE,IAAAA,gBAAgB;EACjB;EACF,CAdM;EAeA,MAAM5E,UAAU,GAAG,CAACj/B,MAAD,EAAS2R,OAAT,EAAkBrI,OAAlB,EAA2Bw6B,YAA3B,EAAyCxG,UAAzC,EAAqDyG,YAArD,KAAsE;EAC9F,QAAMH,WAAW,GAAG1hC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EACA6G,EAAAA,GAAG,CAACkD,UAAJ,GAAiB+7B,WAAjB;;EACA,MAAI,CAACj/B,GAAG,CAACkD,UAAT,EAAqB;EACnB7H,IAAAA,MAAM,CAACiL,KAAP,CAAa,kCAAb;EACA;EACD;;EAED,MAAI64B,YAAJ,EAAkB;EAAE9E,IAAAA,MAAM,GAAG8E,YAAT;EAAuB;;EAE3CL,EAAAA,mBAAmB,GAAG,IAAI5E,mBAAJ,CAAwB;EAAE7+B,IAAAA,MAAF;EAAUwJ,IAAAA,OAAO,EAAE,EAAnB;EAAuBF,IAAAA,OAAvB;EAAgCqI,IAAAA;EAAhC,GAAxB,CAAtB;;EAEA,MAAI2rB,UAAJ,EAAgB;EACdmG,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD;;EAED,QAAM;EAAEgF,IAAAA,OAAF;EAAWC,IAAAA,OAAX;EAAoBC,IAAAA,YAApB;EAAkCxiB,IAAAA;EAAlC,MAAgD/c,GAAG,CAACkD,UAA1D;;EAEA,MAAI6Z,SAAJ,EAAe;EACb,QAAI/c,GAAG,CAACkD,UAAJ,CAAes8B,SAAnB,EAA8BC,qBAAqB,CAACz/B,GAAG,CAACkD,UAAL,EAAiBk8B,YAAjB,CAArB;EAC9B,QAAIp/B,GAAG,CAACkD,UAAJ,CAAew8B,cAAnB,EAAmCC,cAAc,CAAC3/B,GAAG,CAACkD,UAAL,CAAd;EACpC,GAHD,MAGO;EACL,QAAIm8B,OAAO,IAAIC,OAAO,KAAK,KAA3B,EAAkCG,qBAAqB,CAACz/B,GAAG,CAACkD,UAAL,EAAiBk8B,YAAjB,CAArB;EAClC,QAAIG,YAAJ,EAAkBI,cAAc,CAAC3/B,GAAG,CAACkD,UAAL,CAAd;EACnB;EACF,CA3BM;;EA6BP,MAAM08B,2BAA2B,GAAG,UAACC,GAAD,EAA0B;EAAA,MAApBC,UAAoB,uEAAP,EAAO;EAC5D,QAAM7T,OAAO,GAAGxtB,QAAQ,CAACiL,aAAT,CAAuBm2B,GAAvB,CAAhB;EACA9lC,EAAAA,MAAM,CAAC2pB,OAAP,CAAeoc,UAAf,EAA2B9wB,OAA3B,CAAmC,UAAkB;EAAA,QAAjB,CAAC1T,GAAD,EAAML,KAAN,CAAiB;EACnDgxB,IAAAA,OAAO,CAAC3wB,GAAD,CAAP,GAAeL,KAAf;EACD,GAFD;EAGA,SAAOgxB,OAAP;EACD,CAND;;EAQO,MAAMwT,qBAAqB,GAAG,CAACM,UAAD,EAAaX,YAAb,KAA8B;EACjE,MAAI3gC,QAAQ,CAACiV,cAAT,CAAwBla,0BAAxB,CAAJ,EAAyD;EAEzD,QAAM;EAAEgmC,IAAAA,SAAS,EAAE;EAAEQ,MAAAA,OAAF;EAAW1mB,MAAAA;EAAX;EAAb,MAAoCymB,UAA1C,CAHiE;;EAMjE,QAAMrlB,OAAO,GAAGklB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAEwE;EAAN,GAAR,CAA3C;EACA,QAAMymC,UAAU,GAAGL,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA9C;EACA,QAAMkrC,MAAM,GAAGN,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA1C;EAEA,QAAM0mB,oBAAoB,GAAGkkB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAAxD;EACA,QAAM4mB,aAAa,GAAGgkB,2BAA2B,CAAC,KAAD,EAAQ;EACvD5qC,IAAAA,EAAE,EAAE,eADmD;EAEvD43B,IAAAA,GAAG,EAAEoT,OAAO,CAACG,IAAR,CAAax3B,IAAb,KAAsB,SAAtB,uCAA+Di2B,kBAA/D,IAAsFoB,OAAO,CAACG,IAAR,CAAan3B;EAFjD,GAAR,CAAjD;EAKA0S,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EAEA,QAAMC,gBAAgB,GAAG+jB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EACA6mB,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BwxB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE,OAAN;EAAe09B,IAAAA,WAAW,EAAEsN,OAAO,CAAClkB;EAApC,GAAR,CAAxD;EACAD,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BwxB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE,aAAN;EAAqB09B,IAAAA,WAAW,EAAEsN,OAAO,CAAChkB;EAA1C,GAAR,CAAxD;EAEAN,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EAEA,QAAMK,gBAAgB,GAAG0jB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EAEA,QAAM0kC,aAAa,GAAGkG,2BAA2B,CAAC,QAAD,EAAW;EAC1D5qC,IAAAA,EAAE,EAAE,eADsD;EAE1D09B,IAAAA,WAAW,EAAEsN,OAAO,CAAC/jB,OAAR,CAAgBmkB;EAF6B,GAAX,CAAjD;EAIA,QAAMzG,eAAe,GAAGiG,2BAA2B,CAAC,QAAD,EAAW;EAC5D5qC,IAAAA,EAAE,EAAE,iBADwD;EAE5D09B,IAAAA,WAAW,EAAEsN,OAAO,CAAC/jB,OAAR,CAAgBokB;EAF+B,GAAX,CAAnD;EAIAnkB,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BurB,eAA7B;EACAzd,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BsrB,aAA7B;EAEAwG,EAAAA,MAAM,CAAC9xB,WAAP,CAAmBsN,oBAAnB;EACAwkB,EAAAA,MAAM,CAAC9xB,WAAP,CAAmB8N,gBAAnB,EAtCiE;;EAyCjE,QAAMuW,YAAY,GAAGmN,2BAA2B,CAAC,OAAD,EAAU;EAAElN,IAAAA,WAAW,EAAEqG,kBAAkB,CAACzf,KAAD;EAAjC,GAAV,CAAhD;EAEAoB,EAAAA,OAAO,CAACtM,WAAR,CAAoBqkB,YAApB;EACA/X,EAAAA,OAAO,CAACtM,WAAR,CAAoB8xB,MAApB;EACAxlB,EAAAA,OAAO,CAACtM,WAAR,CAAoB6xB,UAApB;EAEAK,EAAAA,kBAAkB,CAACJ,MAAD,EAAS5mB,KAAK,CAAC2f,IAAN,CAAW1K,QAApB,CAAlB;;EAEA,MAAI,CAACwR,UAAU,CAAChjB,SAAhB,EAA2B;EACzB,QAAI,kBAAkBpd,MAAlB,IAA4Bw7B,YAAY,KAAK,IAAjD,EAAuD;EACrD,UAAIA,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCyD,QAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,QAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD,OAJD,MAIO,IAAIc,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACD;EACF;EACF;;EAED,QAAMra,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;EACA,QAAM+jC,aAAa,GAAGhjC,cAAc,CAACoD,WAAf,CAA2B,yBAA3B,CAAtB;EACA,QAAM6/B,cAAc,GAAGR,OAAO,CAACQ,cAAR,IAA0B,CAAjD,CA/DiE;;EAgEjE,QAAMC,sBAAsB,GAAG,CAACF,aAAD,IAAkBvf,GAAG,GAAGuf,aAAN,IAAuBC,cAAc,GAAG,EAAjB,GAAsB,EAAtB,GAA2B,EAAnG;;EAEA,MAAIC,sBAAJ,EAA4B;EAC1B,QAAI,CAACxG,QAAQ,EAAb,EAAiB;EACfx7B,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,UAAI,CAACqlB,UAAU,CAAChjB,SAAhB,EAA2B;EACzBxf,QAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACA0f,QAAAA,iBAAiB,CAAChmB,OAAD,CAAjB;EACD;EACF,KAND,MAMO;EACL,YAAMimB,4BAA4B,GAAI,iBAAiBhhC,MAAlB,IAA6B,CAACpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA9B,IAA0FgmC,YAAY,KAAK,IAAhJ;;EACA,UAAIuB,4BAAJ,EAAkC;EAChCliC,QAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,YAAI,CAACqlB,UAAU,CAAChjB,SAAhB,EAA2B;EACzB2jB,UAAAA,iBAAiB,CAAChmB,OAAD,CAAjB;EACAnd,UAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACD;EACF;EACF;EACF;EACF,CApFM;EAsFA,MAAM2e,cAAc,GAAII,UAAD,IAAgB;EAC5C,MAAIthC,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,KAA2CynB,YAAY,CAACE,UAAb,KAA4B,SAA3E,EAAsF;EAEtF,QAAM;EAAEqE,IAAAA,cAAc,EAAE;EAAEM,MAAAA,OAAF;EAAW1mB,MAAAA;EAAX;EAAlB,MAAyCymB,UAA/C;EAEA,QAAMa,WAAW,GAAGhB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA/C;EACA,QAAM6rC,QAAQ,GAAGjB,2BAA2B,CAAC,KAAD,EAAQ;EAClD5qC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAEoT,OAAO,CAACG,IAAR,CAAax3B,IAAb,KAAsB,SAAtB,uCAA+Dg2B,WAA/D,IAA+EqB,OAAO,CAACG,IAAR,CAAan3B;EAF/C,GAAR,CAA5C,CAN4C;;EAY5C,QAAM83B,QAAQ,GAAGlB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE,WAAN;EAAmBskB,IAAAA,KAAK,EAAE;EAA1B,GAAR,CAA5C;EACA,QAAMynB,QAAQ,GAAGnB,2BAA2B,CAAC,KAAD,EAAQ;EAClD5qC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE;EAF6C,GAAR,CAA5C;EAIA,QAAMoU,UAAU,GAAGpB,2BAA2B,CAAC,KAAD,EAAQ;EAAE5qC,IAAAA,EAAE,EAAE,aAAN;EAAqB4jB,IAAAA,SAAS,EAAE;EAAhC,GAAR,CAA9C;EAEAkoB,EAAAA,QAAQ,CAAC1yB,WAAT,CAAqB2yB,QAArB;EACAD,EAAAA,QAAQ,CAAC1yB,WAAT,CAAqB4yB,UAArB;EAEAJ,EAAAA,WAAW,CAACxyB,WAAZ,CAAwByyB,QAAxB;EACAD,EAAAA,WAAW,CAACxyB,WAAZ,CAAwB0yB,QAAxB;;EACA,MAAId,OAAO,CAACiB,SAAR,CAAkBlG,OAAtB,EAA+B;EAC7B,UAAMmG,OAAO,GAAGtB,2BAA2B,CAAC,KAAD,EAAQ;EACjD5qC,MAAAA,EAAE,EAAE,cAD6C;EAEjD09B,MAAAA,WAAW,EAAEsN,OAAO,CAACiB,SAAR,CAAkB1kB;EAFkB,KAAR,CAA3C;EAIAqkB,IAAAA,WAAW,CAACxyB,WAAZ,CAAwB8yB,OAAxB;EACD;;EAEDZ,EAAAA,kBAAkB,CAACM,WAAD,EAActnB,KAAK,CAAC2f,IAAN,CAAW1K,QAAzB,CAAlB,CAhC4C;;EAkC5C,QAAMkE,YAAY,GAAGmN,2BAA2B,CAAC,OAAD,EAAU;EAAElN,IAAAA,WAAW,EAAEkH,iBAAiB,CAACtgB,KAAD;EAAhC,GAAV,CAAhD;EAEA7a,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BqkB,YAA1B;EACAh0B,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BwyB,WAA1B;;EAEA,MAAI,CAACb,UAAU,CAAChjB,SAAhB,EAA2B;EACzBokB,IAAAA,qBAAqB,CAACP,WAAD,CAArB;EACD;;EACD,SAAOA,WAAP;EACD,CA3CM;EA6CA,MAAMQ,YAAY,GAAIC,SAAD,IAAe;EACzCxC,EAAAA,YAAY,GAAGwC,SAAf;EACD,CAFM;EAIA,MAAMX,iBAAiB,GAAIhmB,OAAD,IAAa;EAC5C,QAAMgf,aAAa,GAAGhf,OAAO,CAACyV,aAAR,CAAsB,gBAAtB,CAAtB;EACA,QAAMwJ,eAAe,GAAGjf,OAAO,CAACyV,aAAR,CAAsB,kBAAtB,CAAxB;;EAEA,QAAMmR,aAAa,GAAG;EAAA;;EAAA,kCAAM5mB,OAAO,CAAC3M,UAAd,wDAAM,oBAAoBC,WAApB,CAAgC0M,OAAhC,CAAN;EAAA,GAAtB;;EAEAgf,EAAAA,aAAa,CAAC1gB,gBAAd,CAA+B,OAA/B,EAAwC,MAAM;EAC5CsoB,IAAAA,aAAa;EACbxC,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACD,GAJD;EAMAV,EAAAA,eAAe,CAAC3gB,gBAAhB,CAAiC,OAAjC,EAA0C,MAAM;EAC9CsoB,IAAAA,aAAa;EACd,GAFD;EAGD,CAfM;EAiBA,MAAMH,qBAAqB,GAAIP,WAAD,IAAiB;EACpD,QAAMC,QAAQ,GAAGD,WAAW,CAACzQ,aAAZ,CAA0B,YAA1B,CAAjB;EACA0Q,EAAAA,QAAQ,CAAC7nB,gBAAT,CAA0B,OAA1B,EAAmC,MAAM;EACvC,QAAImiB,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EACxCkG,MAAAA,cAAc,CAACX,WAAD,CAAd;EACD,KAFD,MAEO;EACL9B,MAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,MAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;;EACA,UAAIc,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCuF,QAAAA,WAAW,CAACziC,MAAZ;EACD;EACF;EACF,GAVD;EAWA0iC,EAAAA,QAAQ,CAAC7nB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMwoB,cAAc,CAACZ,WAAD,CAA5D;EACAC,EAAAA,QAAQ,CAAC7nB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMyoB,YAAY,CAACb,WAAD,CAA1D;EACAA,EAAAA,WAAW,CAACzQ,aAAZ,CAA0B,cAA1B,EAA0CnX,gBAA1C,CAA2D,OAA3D,EAAoE,MAAMuoB,cAAc,CAACX,WAAD,CAAxF;EACD,CAhBM;EAkBA,MAAMN,kBAAkB,GAAG,CAACrU,OAAD,EAAUsC,QAAV,KAAuB;EACvDx0B,EAAAA,MAAM,CAAC2nC,MAAP,CAAczV,OAAO,CAAC3S,KAAtB,EAA6B;EAC3BqoB,IAAAA,KAAK,EAAE,MADoB;EAE3BC,IAAAA,SAAS,EAAE;EAFgB,GAA7B;EAKA,QAAMC,SAAS,GAAG;EAChB,iBAAa;EAAEF,MAAAA,KAAK,EAAE;EAAT,KADG;EAEhB,gBAAY;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAFI;EAGhB,oBAAgB;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAHA;EAIhB,mBAAe;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAJC;EAKhBG,IAAAA,MAAM,EAAE;EAAEH,MAAAA,KAAK,EAAE,KAAT;EAAgBC,MAAAA,SAAS,EAAE;EAA3B,KALQ;EAMhBG,IAAAA,GAAG,EAAE;EAAEJ,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C,KANW;EAOhBI,IAAAA,MAAM,EAAE;EAAEL,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C;EAPQ,GAAlB;EAUA7nC,EAAAA,MAAM,CAAC2nC,MAAP,CAAczV,OAAO,CAAC3S,KAAtB,EAA6BuoB,SAAS,CAACtT,QAAD,CAAT,IAAuBsT,SAAS,CAAC,WAAD,CAA7D;EACD,CAjBM;;EAmBP,MAAML,cAAc,GAAIZ,WAAD,IAAiB;EACtC,QAAME,QAAQ,GAAGF,WAAW,CAACzQ,aAAZ,CAA0B,YAA1B,CAAjB;;EACA,MAAI2Q,QAAQ,CAACxnB,KAAT,CAAeZ,OAAf,KAA2B,MAA/B,EAAuC;EACrC;EACD;;EACD,QAAMwoB,OAAO,GAAGN,WAAW,CAACzQ,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAI+Q,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAAC5nB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;;EAED,QAAMmoB,QAAQ,GAAGD,WAAW,CAACzQ,aAAZ,CAA0B,YAA1B,CAAjB;EACA,QAAM8R,QAAQ,GAAGpB,QAAQ,CAAC7d,qBAAT,EAAjB;EACA,MAAIkf,IAAI,GAAGviC,MAAM,CAACwqB,UAAP,GAAoB,CAA/B;EACA,MAAIgY,IAAI,GAAGxiC,MAAM,CAAC0qB,WAAP,GAAqB,CAAhC;EACAuW,EAAAA,WAAW,CAACtnB,KAAZ,CAAkB,gBAAlB,IAAsC2oB,QAAQ,CAAC7kC,CAAT,GAAa+kC,IAAb,GAAoB,gBAApB,GAAuC,QAA7E;EACAvB,EAAAA,WAAW,CAACtnB,KAAZ,CAAkB,aAAlB,IAAmC2oB,QAAQ,CAACzX,CAAT,GAAa0X,IAAb,GAAoB,UAApB,GAAiC,YAApE;EACD,CAhBD;;EAkBA,MAAMT,YAAY,GAAIb,WAAD,IAAiB;EACpC,QAAMM,OAAO,GAAGN,WAAW,CAACzQ,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAI+Q,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAAC5nB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;EACF,CALD;;EAOA,MAAM6oB,cAAc,GAAIX,WAAD,IAAiB;EACtCa,EAAAA,YAAY,CAACb,WAAD,CAAZ;EACA,QAAME,QAAQ,GAAGF,WAAW,CAACzQ,aAAZ,CAA0B,YAA1B,CAAjB;EACA2Q,EAAAA,QAAQ,CAACxnB,KAAT,CAAeZ,OAAf,GAAyBooB,QAAQ,CAACxnB,KAAT,CAAeZ,OAAf,KAA2B,MAA3B,GAAoC,MAApC,GAA6C,MAAtE;EACD,CAJD;;ECrPA,MAAM0pB,GAAG,GAAG,CAACpnB,GAAD,WAKN;EAAA,MALY;EAChBpW,IAAAA,MADgB;EAEhBC,IAAAA,OAFgB;EAGhBF,IAAAA,OAHgB;EAIhBtJ,IAAAA;EAJgB,GAKZ;EACJ,QAAM88B,OAAO,GAAGvzB,MAAhB;EACA,QAAMgT,QAAQ,GAAG/S,OAAjB;EACA,QAAMkzB,QAAQ,GAAGpzB,OAAjB;EACA,QAAM09B,OAAO,GAAGhnC,MAAhB;EACA,MAAIinC,WAAW,GAAG,CAAlB,CALI;;EAOJ,QAAMC,kBAAkB,GAAItT,gBAAD,IAAsB;EAC/C,UAAMzf,UAAU,GAAGyf,gBAAgB,CAAC3W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMpD,KAAK,GAAGD,QAAQ,EAAtB;;EAEA,UAAMwmC,SAAS,GAAG,CAACloC,GAAD,EAAMkV,UAAN,EAAkBizB,mBAAlB,KAA0C;EAC1D,UAAIC,YAAY,GAAG,CAAnB;EACA,UAAIC,UAAU,GAAG,CAAjB;;EACA,UAAIroC,GAAG,CAACkV,UAAD,CAAH,IAAmB,IAAvB,EAA6B;EAC3BkzB,QAAAA,YAAY,GAAGpoC,GAAG,CAACkV,UAAD,CAAlB;EACD;;EACDkzB,MAAAA,YAAY;;EACZ,UAAIpoC,GAAG,CAAC6V,EAAJ,IAAU,IAAd,EAAoB;EAClBwyB,QAAAA,UAAU,GAAGroC,GAAG,CAAC6V,EAAjB;EACD,OATyD;;;EAW1D,UAAIsyB,mBAAmB,GAAG,CAA1B,EAA6B;EAC3BE,QAAAA,UAAU;EACX;;EAEDroC,MAAAA,GAAG,CAAC6V,EAAJ,GAASwyB,UAAT;EACAroC,MAAAA,GAAG,CAACkV,UAAD,CAAH,GAAkBkzB,YAAlB;EACD,KAjBD;;EAmBA,QAAInlC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,aAAOmlC,cAAc,CAACxsC,gBAAD,CAArB;EACA,UAAIysC,WAAW,GAAG,EAAlB;EACA,YAAMt0B,OAAO,GAAGF,iBAAiB,EAAjC;;EACA,UAAI4gB,gBAAgB,CAACvW,OAAjB,CAAyBoqB,YAAzB,KAA0C,CAA1C,IAA+Cv0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAAnD,EAAiF;EAC/EqoC,QAAAA,WAAW,GAAGt0B,OAAO,CAACyB,EAAtB;EACD,OAFD,MAEO,IAAI,CAACif,gBAAgB,CAACvW,OAAjB,CAAyBoqB,YAAzB,KAA0C,CAA1C,IAA+C7T,gBAAgB,CAACvW,OAAjB,CAAyBoqB,YAAzB,KAA0C,CAA1F,KAAgGv0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAApG,EAAkI;EACvIqoC,QAAAA,WAAW,GAAGt0B,OAAO,CAACC,EAAtB;EACD,OAFM,MAEA;EACLq0B,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAIt0B,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpCqoC,QAAAA,WAAW,CAACr0B,EAAZ,GAAiBD,OAAjB;EACD,OAb4C;;;EAe7C,UAAI0gB,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BgsC,GAA1B,IAAiC,IAArC,EAA2C;EACzC9T,QAAAA,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BgsC,GAA1B,GAAgC,CAAhC;EACD,OAjB4C;;;EAoB7C,UAAI9T,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BisC,IAA1B,IAAkC,IAAtC,EAA4C;EAC1C/T,QAAAA,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BisC,IAA1B,GAAiC,CAAjC;EACD;;EAED,UAAIP,mBAAmB,GAAG,CAAC,CAA3B,CAxB6C;;EAyB7C,UAAIQ,oBAAoB,GAAG,CAAC,CAA5B,CAzB6C;;EA0B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA1B6C;;EA2B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA3B6C;;EA4B7C,UAAIC,eAAe,GAAG,CAAC,CAAvB;EACA,UAAIC,iBAAiB,GAAG,CAAC,CAAzB,CA7B6C;;EA8B7C,UAAIC,sBAAsB,GAAG,CAAC,CAA9B,CA9B6C;;EAgC7C,UAAIrU,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BwsC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3Cd,QAAAA,mBAAmB,GAAGrR,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BwsC,GAA3B,EAAgC,EAAhC,CAA9B;EACD;;EACD,UAAItU,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BysC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,oBAAoB,GAAG7R,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BysC,GAA3B,EAAgC,EAAhC,CAA/B;EACD;;EACD,UAAIvU,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0B0sC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,kBAAkB,GAAG9R,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0B0sC,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAIxU,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BuZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3C6yB,QAAAA,kBAAkB,GAAG/R,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BuZ,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI2e,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BqZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CgzB,QAAAA,eAAe,GAAGhS,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BqZ,GAA3B,EAAgC,EAAhC,CAA1B;EACD;;EACD,UAAI6e,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BgsC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CM,QAAAA,iBAAiB,GAAGjS,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BgsC,GAA3B,EAAgC,EAAhC,CAA5B;EACD;;EAED,UAAI9T,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BisC,IAA1B,IAAkC,IAAtC,EAA4C;EAAE;EAC5CM,QAAAA,sBAAsB,GAAGlS,QAAQ,CAACnC,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0BisC,IAA3B,EAAiC,EAAjC,CAAjC;EACD,OArD4C;;;EAuD7C,UAAIz9B,UAAU,GAAGs9B,WAAW,CAACjrB,QAAQ,CAACe,SAAV,CAA5B;;EACA,UAAIpT,UAAJ,EAAgB;EACd,cAAMm+B,oBAAoB,GAAGn+B,UAAU,CAACiK,UAAD,CAAvC;EACA,cAAMm0B,iBAAiB,GAAGp+B,UAAU,CAAC4K,EAArC,CAFc;;EAId,YAAIuzB,oBAAoB,KAAK,KAAzB,IAAkC,CAAC1jC,GAAG,CAAC8C,kBAA3C,EAA+D;EAC7D,iBAAO,KAAP;EACD;;EAED,YAAImsB,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0B+rC,YAA1B,KAA2C,CAA/C,EAAkD;EAChD;EACA,cAAIQ,sBAAsB,GAAG,CAAzB,IAA8BK,iBAAiB,IAAIL,sBAAnD,IAA6Eb,mBAAmB,GAAG,CAAvG,EAA0G;EACxG,mBAAO,KAAP;EACD;EACF,SALD,MAKO;EACL;EACA,cAAIY,iBAAiB,GAAG,CAApB,IAAyBM,iBAAiB,IAAIN,iBAA9C,IAAmEZ,mBAAmB,GAAG,CAA7F,EAAgG;EAC9F,mBAAO,KAAP;EACD;EACF,SAlBa;;;EAqBd,YAAIQ,oBAAoB,GAAG,CAAvB,IAA4BS,oBAAoB,IAAIT,oBAAxD,EAA8E;EAC5E,iBAAO,KAAP;EACD;EACF,OAxBD,MAwBO;EACL19B,QAAAA,UAAU,GAAG,EAAb;EACAs9B,QAAAA,WAAW,CAACjrB,QAAQ,CAACe,SAAV,CAAX,GAAkCpT,UAAlC;EACD,OAnF4C;;;EAsF7C,UAAI4J,QAAQ,GAAG0zB,WAAW,CAAC5mC,KAAD,CAA1B;;EACA,UAAIkT,QAAQ,IAAI,IAAhB,EAAsB;EACpB,cAAMy0B,kBAAkB,GAAGz0B,QAAQ,CAACK,UAAD,CAAnC;EACA,cAAMq0B,eAAe,GAAG10B,QAAQ,CAACgB,EAAjC,CAFoB;;EAIpB,YAAIizB,eAAe,GAAG,CAAlB,IAAuBS,eAAe,IAAIT,eAA1C,IAA6DX,mBAAmB,GAAG,CAAvF,EAA0F;EACxF,iBAAO,KAAP;EACD,SANmB;;;EAQpB,YAAIS,kBAAkB,GAAG,CAArB,IAA0BU,kBAAkB,IAAIV,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAXD,MAWO;EACL/zB,QAAAA,QAAQ,GAAG,EAAX;EACA0zB,QAAAA,WAAW,CAAC5mC,KAAD,CAAX,GAAqBkT,QAArB;EACD;;EAED,UAAID,SAAS,GAAG2zB,WAAW,CAAC/rC,MAAD,CAA3B;;EACA,UAAIoY,SAAS,IAAI,IAAjB,EAAuB;EACrB,cAAM40B,kBAAkB,GAAG50B,SAAS,CAACM,UAAD,CAApC,CADqB;;EAGrB,YAAI2zB,kBAAkB,GAAG,CAArB,IAA0BW,kBAAkB,IAAIX,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAND,MAMO;EACLj0B,QAAAA,SAAS,GAAG,EAAZ;EACA2zB,QAAAA,WAAW,CAAC/rC,MAAD,CAAX,GAAsBoY,SAAtB;EACD;EACF,KAzI8C;;;EA2I/C,UAAM60B,UAAU,GAAG9U,gBAAgB,CAACvW,OAApC;;EACA,QAAIqrB,UAAU,CAACC,KAAX,IAAoB,IAApB,IAA4BD,UAAU,CAACC,KAAX,GAAmB,CAAnD,EAAsD;EACpD,YAAMA,KAAK,GAAGD,UAAU,CAACC,KAAzB;EACAD,MAAAA,UAAU,CAACC,KAAX,GAAmB,CAAnB;EACAv2B,MAAAA,UAAU,CAAC20B,GAAD,EAAM4B,KAAK,GAAG,IAAd,EAAoBhpB,GAApB,EAAyB;EACjCpW,QAAAA,MAAM,EAAEuzB,OADyB;EAEjCtzB,QAAAA,OAAO,EAAE+S,QAFwB;EAGjCjT,QAAAA,OAAO,EAAEozB,QAHwB;EAIjC18B,QAAAA,MAAM,EAAEgnC;EAJyB,OAAzB,CAAV;EAMA,aAAO,KAAP;EACD;;EAEDG,IAAAA,SAAS,CAACj9B,UAAD,EAAaiK,UAAb,EAAyBizB,mBAAzB,CAAT;EACAD,IAAAA,SAAS,CAACrzB,QAAD,EAAWK,UAAX,EAAuBizB,mBAAvB,CAAT;EACAD,IAAAA,SAAS,CAACtzB,SAAD,EAAYM,UAAZ,EAAwBizB,mBAAxB,CAAT;EAEA,QAAIwB,OAAO,GAAG,IAAd;;EACA,QAAIhV,gBAAgB,CAACl4B,OAAD,CAAhB,CAA0B+rC,YAA1B,KAA2C,CAA/C,EAAkD;EAChDmB,MAAAA,OAAO,GAAG,IAAV;EACD,KA/J8C;;;EAiK/C,UAAMC,UAAU,GAAG,EAAnB;EACAA,IAAAA,UAAU,CAACtsB,QAAQ,CAACe,SAAV,CAAV,GAAiCpT,UAAjC;EACA2+B,IAAAA,UAAU,CAACjoC,KAAD,CAAV,GAAoBkT,QAApB;EACA+0B,IAAAA,UAAU,CAACptC,MAAD,CAAV,GAAqBoY,SAArB;EACAT,IAAAA,kBAAkB,CAAC;EAAE,OAACw1B,OAAD,GAAWC;EAAb,KAAD,CAAlB;EACD,GAtKD;;EAwKA,QAAMC,aAAa,GAAG,CAACpQ,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+CykB,QAA/C,KAA4D;EAChFJ,IAAAA,mBAAmB,CAAC7I,gBAAD,EAAmB8I,QAAnB,CAAnB;EACAC,IAAAA,eAAe,CAACjE,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+CykB,QAA/C,EAAyDC,OAAzD,EAAkEvgB,QAAlE,CAAf;EACD,GAHD;;EAKA,QAAMwsB,oBAAoB,GAAInV,gBAAD,IAAsB;EACjD,UAAMxb,KAAK,GAAG,kBAAd;;EACA,QAAI8uB,kBAAkB,CAACtT,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EACD,QAAIjvB,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACAwY,MAAAA,OAAO,CAAC9tB,MAAR;EACD,KARgD;;;EAUjD,QAAIM,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAlC,IAA0ChV,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA1F,EAAgG;EAC9F;EACD;;EACD,UAAM2wB,MAAM,GAAG5lC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACA26B,IAAAA,MAAM,CAACrvC,EAAP,GAAYye,KAAZ;EACAhV,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bi2B,MAA1B;;EACA,QAAIza,cAAc,CAAClmB,GAAf,CAAmB,wBAAnB,MAAiDxI,SAArD,EAAgE;EAC9D0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,wBAAtB,EAAgDpS,mBAAhD;EACD;;EACD,WAAOohB,oBAAoB,CAAC5J,gBAAD,EAAmBrX,QAAnB,CAA3B;EACD,GApBD;;EAsBA,QAAM0sB,kBAAkB,GAAI90B,UAAD,IAAgB;EACzC,UAAM+0B,UAAU,GAAG9lC,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgDjV,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,CAAnE;;EACA,QAAI6wB,UAAJ,EAAgB;EACd,YAAMC,cAAc,GAAGD,UAAU,CAACE,eAAX,IAA8BF,UAAU,CAACG,aAAX,CAAyBjmC,QAA9E;EACA,aAAO+lC,cAAc,CAAClW,eAAf,CAA+B1V,SAA/B,CAAyClQ,QAAzC,CAAkD8G,UAAlD,CAAP;EACD;;EACD,WAAO,KAAP;EACD,GAPD;;EASA,QAAMm1B,cAAc,GAAG,CAAC1V,gBAAD,EAAmB2V,YAAnB,KAAoC;EACzD,UAAMp1B,UAAU,GAAGyf,gBAAgB,CAAC3W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAM0kC,UAAU,GAAG9U,gBAAgB,CAACvW,OAApC;;EAEA,QAAIqrB,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7B,aAAOC,cAAc,CAAC5pC,SAAD,EAAY+zB,gBAAZ,CAArB;EACD;;EACD,QAAI8U,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7BT,MAAAA,oBAAoB,CAACnV,gBAAD,CAApB;EACA;EACD;;EAED,QAAIsT,kBAAkB,CAACtT,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,UAAMxb,KAAK,GAAG,cAAcswB,UAAU,CAACc,MAAvC;EACA,UAAME,YAAY,GAAG,qBAAqBhB,UAAU,CAACc,MAArD;;EAEA,QAAI7kC,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACA,YAAMuxB,cAAc,GAAGvmC,QAAQ,CAACiV,cAAT,CAAwBqxB,YAAxB,CAAvB;;EACA,UAAI9Y,OAAJ,EAAa;EACXA,QAAAA,OAAO,CAAC9tB,MAAR;EACD;;EACD,UAAI6mC,cAAJ,EAAoB;EAClBA,QAAAA,cAAc,CAAC7mC,MAAf;EACD;EACF;;EACD,QAAImmC,kBAAkB,CAAC90B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI/Q,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAtC,EAA4C;EAC1C;EACD;;EAEDzT,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiCiE,KAAjC;EACA,UAAMwxB,QAAQ,GAAGlB,UAAU,CAACc,MAAX,KAAsB,CAAvC;;EACA,QAAID,YAAJ,EAAkB;EAChB,YAAMM,UAAU,GAAGzmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAw7B,MAAAA,UAAU,CAAClwC,EAAX,GAAgB+vC,YAAhB;EACA,YAAMI,OAAO,GAAGlW,gBAAgB,CAACvW,OAAjB,CAAyBysB,OAAzB,IAAoC,GAApD;EACA,YAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,MAAAA,UAAU,CAACj3B,YAAX,CAAwB,OAAxB,8GAAsIm3B,SAAtI;EACA3mC,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B82B,UAA1B;EACD;;EACD,UAAMb,MAAM,GAAG5lC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACA26B,IAAAA,MAAM,CAACrvC,EAAP,GAAYye,KAAZ;EACA,UAAM4xB,UAAU,GAAG1lC,MAAM,CAAC0qB,WAA1B;EACA,UAAMib,SAAS,GAAG3lC,MAAM,CAACwqB,UAAzB;EACA,QAAIob,MAAM,GAAG,KAAb;;EACA,QAAI,CAACN,QAAL,EAAe;EACb,YAAMO,YAAY,GAAGH,UAAU,GAAG,CAAb,GAAiB,GAAtC;EACA,UAAII,aAAa,GAAG,EAApB;EACA,UAAI1iB,KAAK,GAAGuiB,SAAS,GAAG,CAAZ,GAAgB,GAA5B;EACA,UAAII,cAAc,GAAGD,aAAa,GAAGD,YAArC;EACA,UAAI7rB,KAAK,GAAG2rB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAAnC;EACA,UAAIK,UAAU,GAAG,YAAjB,CANa;;EAQb,UAAI,CAAC,UAAU5qC,IAAV,CAAewiB,SAAS,CAACwc,SAAzB,KAAwC,QAAQh/B,IAAR,CAAawiB,SAAS,CAACwc,SAAvB,CAAzC,KAAgF,QAAQh/B,IAAR,CAAawiB,SAAS,CAACwc,SAAvB,MAAsC,KAA1H,EAAiI;EAC/HpgB,QAAAA,KAAK,GAAG2rB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACAviB,QAAAA,KAAK,GAAGuiB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb,CAJ+H;EAMhI,OAND,MAMO,IAAI,kBAAkBhmC,MAAlB,IAA6B,UAAU5E,IAAV,CAAewiB,SAAS,CAACwc,SAAzB,CAAjC,EAAuE;EAC5EpgB,QAAAA,KAAK,GAAG2rB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACAviB,QAAAA,KAAK,GAAGuiB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb;EACD,OAnBY;;;EAqBb,UAAI5B,UAAU,CAAC6B,KAAX,IAAoB,IAAxB,EAA8B;EAC5BL,QAAAA,MAAM,GAAG,IAAT;EACAlB,QAAAA,MAAM,CAACp2B,YAAP,CAAoB,OAApB,EAA6B,2CAA2Cy3B,cAA3C,GAA4D,sBAA5D,GAAqF/rB,KAArF,GAA6F,sBAA7F,GAAsHoJ,KAAtH,GAA8H,kDAA3J;EACD,OAHD,MAGO;EACLshB,QAAAA,MAAM,CAACp2B,YAAP,CAAoB,OAApB,EAA6B03B,UAAU,GAAG5B,UAAU,CAAC8B,WAArD;EACD;EACF,KA3BD,MA2BO;EACLxB,MAAAA,MAAM,CAACp2B,YAAP,CAAoB,OAApB,EAA6B81B,UAAU,CAAC8B,WAAxC;EACD;;EACDpnC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bi2B,MAA1B;EACA,UAAMyB,MAAM,GAAGrnC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EAEA,UAAM+vB,YAAY,GAAGsK,UAAU,CAACgC,EAAX,KAAkB,KAAlB,GAA0B,GAA1B,GAAgC,GAArD;EAEAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAAC9wC,EAAP,GAAY,YAAZ;EACA,UAAM++B,OAAO,GAAG9E,gBAAgB,CAACvW,OAAjB,CAAyBqb,OAAzC;EACA,QAAIqS,UAAU,GAAG,EAAjB;;EACA,QAAIrS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCqS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIrC,UAAU,CAACzL,OAAX,IAAsByL,UAAU,CAAC,eAAD,CAApC,EAAuD;EACrD+B,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EAED,QAAIrsB,IAAJ,CAnGyD;;EAqGzD,QAAIiV,gBAAgB,CAACnV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGiV,gBAAgB,CAACnV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCkzB,gBAAgB,CAAC3W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,+DAHU,GAGwDqsB,UAHxD,GAGqE,GAHrE,GAIV,yCAJU,GAKV,+GALU,GAMV,8GANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,yBAZU,GAaV,qEAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAa5jB,SAAb,EAAwB6jB,KAAxB,EAA+BC,MAA/B,EAAuCC,OAAvC;;EACA,UAAIxX,gBAAgB,CAACvW,OAAjB,CAAyBguB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACA5jB,QAAAA,SAAS,GAAG,SAAZ;EACA6jB,QAAAA,KAAK,GAAG,SAAR;EACAC,QAAAA,MAAM,GAAG,SAAT;EACAC,QAAAA,OAAO,GAAG,SAAV;EACD,OAND,MAMO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACA5jB,QAAAA,SAAS,GAAG,SAAZ;EACA8jB,QAAAA,MAAM,GAAG,SAAT;EACAD,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGnO,gBAAgB,CAACnV,UAAjB,CAA4BgC,KAA9C;EACA,YAAM6qB,eAAe,GAAG1X,gBAAgB,CAACnV,UAAjB,CAA4BkC,WAApD;EACA,UAAI4qB,OAAO,GAAG,EAAd;;EACA,UAAI3X,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD0T,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/FqrB,QAAAA,OAAO,GAAG,+CAA+CJ,MAA/C,GAAwD,cAAxD,GAAyEvX,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAArG,GAAgH,gCAA1H;EACD;;EACD,YAAMsrB,UAAU,GAAG,iCAAiCr3B,UAAjC,GAA8C,IAA9C,GAAqDiE,KAArD,GAA6D,KAAhF;EACA,YAAMqI,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6E4jB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,oDAHY;EAKZ,YALY,GAKHG,OALG,GAKO,kCALP,GAMZ,wCANY,GAM+BlkB,SAN/B,GAM2C,IAN3C,GAMkD0a,SANlD,GAM8D,QAN5E;EAOA,YAAMza,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DikB,eAA7D,GAA+E,+BAA5F;EACA3sB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EAEDmjB,IAAAA,MAAM,CAAC73B,YAAP,CAAoB,OAApB,EAA6B,kHAA7B;EACAo2B,IAAAA,MAAM,CAACj2B,WAAP,CAAmB03B,MAAnB,EA3JyD;;EA8JzD,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACAtoC,IAAAA,QAAQ,CAACkzB,aAAT,CAAuBmV,aAAvB;;EAEA,QAAI/C,UAAU,CAAC,eAAD,CAAd,EAAiC;EAC/B/pB,MAAAA,IAAI,GAAGsd,0BAA0B,CAACrI,gBAAD,EAAmBjV,IAAnB,CAAjC;EACD;;EACD8rB,IAAAA,MAAM,CAACkB,MAAP,GAAgBhtB,IAAhB;;EAEA,UAAMitB,kBAAkB,GAAG,MAAM;EAC/B;EACAxB,MAAAA,aAAa,GAAGhnC,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC+wB,eAAtC,CAAsD/wB,cAAtD,CAAqE,YAArE,EAAmFwzB,YAAnG;;EACA,UAAInD,UAAU,CAAC,eAAD,CAAV,KAAgC,IAAhC,IAAwC,CAACkB,QAA7C,EAAuD;EACrDQ,QAAAA,aAAa,IAAI,EAAjB;EACD;;EACDhnC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC+wB,eAAtC,CAAsD9hB,IAAtD,CAA2DrJ,KAA3D,CAAiE6tB,MAAjE,GAA0E,KAA1E;EACA1oC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC4F,KAAtC,CAA4CgB,MAA5C,GAAqDmrB,aAAa,GAAG,IAArE;EACD,KARD;;EAUA,UAAM3L,EAAE,GAAGvc,SAAS,CAACwc,SAAV,CAAoBrkB,WAApB,EAAX;;EACA,QAAIokB,EAAE,CAACr6B,OAAH,CAAW,QAAX,MAAyB,CAAC,CAA9B,EAAiC;EAC/B,UAAIq6B,EAAE,CAACr6B,OAAH,CAAW,QAAX,IAAuB,CAAC,CAA5B,EAA+B;EAC7BqmC,QAAAA,MAAM,CAAChX,MAAP,GAAgB,MAAM;EACpBmY,UAAAA,kBAAkB;EAClB,gBAAMhP,UAAU,GAAGx5B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC+wB,eAAtC,CAAsD/wB,cAAtD,CAAqE,YAArE,CAAnB;EACAywB,UAAAA,aAAa,CAACpQ,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+C8xB,MAA/C,CAAb;EACD,SAJD;EAKD,OAND,MAMO;EACL,YAAI6B,KAAK,GAAGtB,MAAM,CAACrB,eAAP,IAA0BqB,MAAM,CAACpB,aAA7C;EACA,YAAI0C,KAAK,CAAC3oC,QAAV,EAAoB2oC,KAAK,GAAGA,KAAK,CAAC3oC,QAAd,CAFf;;EAIL,cAAM4oC,MAAM,GAAGre,WAAW,CAAC,MAAM;EAC/B,cAAIoe,KAAK,CAACzd,UAAN,KAAqB,UAAzB,EAAqC;EACnCV,YAAAA,aAAa,CAACoe,MAAD,CAAb,CADmC;;EAGnCJ,YAAAA,kBAAkB;EAClB,kBAAMhP,UAAU,GAAGx5B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC+wB,eAAtC,CAAsD/wB,cAAtD,CAAqE,YAArE,CAAnB;EACAywB,YAAAA,aAAa,CAACpQ,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+C8xB,MAA/C,CAAb;EACD;EACF,SARyB,EAQvB,GARuB,CAA1B;EASD;EACF,KArBD,MAqBO;EACLO,MAAAA,MAAM,CAAChX,MAAP,GAAgB,MAAM;EACpB;EACAmY,QAAAA,kBAAkB;EAClB,cAAMhP,UAAU,GAAGx5B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC+wB,eAAtC,CAAsD/wB,cAAtD,CAAqE,YAArE,CAAnB;EACAywB,QAAAA,aAAa,CAACpQ,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwCxkB,KAAxC,EAA+C8xB,MAA/C,CAAb;EACD,OALD;EAMD;EACF,GA9MD;;EA+MA,QAAM+B,wBAAwB,GAAIrY,gBAAD,IAAsB;EACrD0V,IAAAA,cAAc,CAAC1V,gBAAD,EAAmB,KAAnB,CAAd;EACD,GAFD;;EAIA,MAAIsY,eAAe,GAAG,KAAtB;;EAEA,QAAMC,sBAAsB,GAAIvY,gBAAD,IAAsB;EACnD,QAAI8E,OAAO,GAAG9E,gBAAgB,CAACvW,OAAjB,CAAyBqb,OAAvC;EACA,UAAMgQ,UAAU,GAAG9U,gBAAgB,CAACvW,OAApC,CAFmD;;EAKnD,QAAI/Y,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,sBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiB+5B,oBAAxB,KAAiD,WAD/C,IAEF,OAAO9nC,MAAM,CAAC+N,SAAP,CAAiB+5B,oBAAxB,KAAiD,UAFnD,EAE+D;EAC7D,YAAMA,oBAAoB,GAAG9nC,MAAM,CAAC+N,SAAP,CAAiB+5B,oBAA9C;;EAEA,UAAI,CAACF,eAAL,EAAsB;EACpB,cAAMjW,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAACxX,UAAP,GAAoBmV,gBAAgB,CAACnV,UAArC;EACAwX,QAAAA,MAAM,CAACjZ,KAAP,GAAe4W,gBAAgB,CAAC3W,OAAhC;;EACA,YAAI2W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/B8Y,UAAAA,MAAM,CAAC/Y,OAAP,GAAiB0W,gBAAgB,CAACzW,UAAlC;EACD;;EACD,YAAIyW,gBAAgB,CAACvW,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCmU,UAAAA,MAAM,CAACnU,EAAP,GAAY8R,gBAAgB,CAACvW,OAAjB,CAAyByE,EAArC;EACD;;EAEDxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,GAA4C,MAAM;EAChD,cAAIqH,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,kBAAMqD,MAAM,GAAGnI,gBAAgB,CAACvW,OAAjB,CAAyB0e,MAAxC;EACArD,YAAAA,OAAO,IAAIwE,eAAe,CAACJ,OAAD,EAAUvgB,QAAV,CAA1B,CAFqC;;EAKrC,gBAAIwf,MAAM,IAAI,IAAd,EAAoB;EAClB;EACA3qB,cAAAA,iBAAiB,CAACG,WAAlB,CAA8BmnB,OAA9B;EACAoD,cAAAA,gBAAgB,CAACC,MAAD,EAASnI,gBAAT,CAAhB;EACA;EACD,aAVoC;;;EAYrC,gBAAIA,gBAAgB,CAACvW,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAYua,OAAZ,EAAqB,QAArB;EACD,aAFD,MAEO;EACLp0B,cAAAA,MAAM,CAACG,QAAP,GAAkBi0B,OAAlB;EACD;EACF;EACF,SAnBD;;EAoBAp0B,QAAAA,MAAM,CAAC+N,SAAP,CAAiBg6B,uBAAjB,GAA2C,MAAM;EAC/C5P,UAAAA,mBAAmB,CAAC7I,gBAAD,CAAnB;EACD,SAFD;;EAGAwY,QAAAA,oBAAoB,CAACnW,MAAD,CAApB;EACAiW,QAAAA,eAAe,GAAG,IAAlB;EACD;EACF,KA1CD,MA0CO;EACL5nC,MAAAA,MAAM,CAAC+N,SAAP,CAAiBi6B,kBAAjB,GAAsC1Y,gBAAgB,CAAC3W,OAAvD;;EAEA,UAAIyrB,UAAU,CAAC6D,eAAf,EAAgC;EAC9B,YAAI7D,UAAU,CAAC6D,eAAX,CAA2BC,QAA/B,EAAyC;EACvCC,UAAAA,mBAAmB,CAAC7Y,gBAAD,CAAnB;EACD;;EACD,YAAI8U,UAAU,CAAC6D,eAAX,CAA2BG,MAA/B,EAAuC;EACrCC,UAAAA,eAAe,CAAC/Y,gBAAD,CAAf;EACD;;EACD,YAAI8U,UAAU,CAAC6D,eAAX,CAA2BhD,YAA/B,EAA6C;EAC3CqD,UAAAA,aAAa,GAAGhZ,gBAAhB;EACAtvB,UAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqBulB,YAArB,GAAoCpD,cAApC;EACD,SAV6B;;;EAY9B,cAAMd,KAAK,GAAGD,UAAU,CAACC,KAAX,IAAoBD,UAAU,CAAC6D,eAAX,CAA2BO,eAA7D;;EACA,YAAInE,KAAK,IAAI,IAAT,IAAiBA,KAAK,GAAG,CAA7B,EAAgC;EAC9Bv2B,UAAAA,UAAU,CAAC,MAAM;EACf65B,YAAAA,wBAAwB,CAACrY,gBAAD,CAAxB;EACD,WAFS,EAEP+U,KAAK,GAAG,IAFD,CAAV;EAGD;EACF,OAlBD,MAkBO;EACLsD,QAAAA,wBAAwB,CAACrY,gBAAD,CAAxB;EACD;;EAED,UAAItvB,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,gBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiB06B,cAAxB,KAA2C,WADzC,IAEF,OAAOzoC,MAAM,CAAC+N,SAAP,CAAiB06B,cAAjB,CAAgCnZ,gBAAgB,CAAC3W,OAAjD,CAAP,KAAqE,UAFvE,EAEmF;EACjF,cAAM+vB,aAAa,GAAG1oC,MAAM,CAAC+N,SAAP,CAAiB06B,cAAjB,CAAgCnZ,gBAAgB,CAAC3W,OAAjD,CAAtB;EAEA,cAAMgZ,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAACxX,UAAP,GAAoBmV,gBAAgB,CAACnV,UAArC;EACAwX,QAAAA,MAAM,CAACjZ,KAAP,GAAe4W,gBAAgB,CAAC3W,OAAhC;;EAEA,YAAI2W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/B8Y,UAAAA,MAAM,CAAC/Y,OAAP,GAAiB0W,gBAAgB,CAACzW,UAAlC;EACD;;EAED,YAAIkX,OAAO,GAAG,EAAd;;EACA,aAAK,IAAI4Y,aAAT,IAA0BrZ,gBAA1B,EAA4C;EAC1C;EACA,cAAIqZ,aAAa,CAACroB,UAAd,CAAyBjoB,WAAzB,KAAyCswC,aAAa,KAAKrwC,OAA/D,EAAwE;EACtE,kBAAMswC,QAAQ,GAAG;EAAE,eAACD,aAAD,GAAiBrZ,gBAAgB,CAACqZ,aAAD;EAAnC,aAAjB;EACA5Y,YAAAA,OAAO,CAACjsB,IAAR,CAAa8kC,QAAb;EACD;EACF;;EAED,YAAI7Y,OAAO,CAACh0B,MAAR,GAAiB,CAArB,EAAwB;EACtB41B,UAAAA,MAAM,CAAC5B,OAAP,GAAiBA,OAAjB;EACD;;EACD,YAAIT,gBAAgB,CAACvW,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCmU,UAAAA,MAAM,CAACnU,EAAP,GAAY8R,gBAAgB,CAACvW,OAAjB,CAAyByE,EAArC;EACD,SAzBgF;;;EA4BjFxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiB86B,6BAAjB,GAAkDC,gBAAD,IAAsB;EACrE,cAAI,CAACA,gBAAD,IAAqB,CAACA,gBAAgB,CAACpwB,KAA3C,EAAkD;EAAE;EAAQ;;EAE5D,gBAAMqwB,SAAS,GAAG,EAAlB;EACAA,UAAAA,SAAS,CAAC//B,IAAV,GAAiB,OAAjB;EACA+/B,UAAAA,SAAS,CAACxgC,OAAV,GAAoB/P,oBAApB;EACAuwC,UAAAA,SAAS,CAAC7/B,OAAV,GAAoB;EAAE,aAAC5Q,OAAD,GAAWwwC,gBAAgB,CAACpwB;EAA9B,WAApB;;EACA,cAAI4W,gBAAgB,CAACzW,UAArB,EAAiC;EAC/BkwB,YAAAA,SAAS,CAAC7/B,OAAV,GAAoB,EAAE,GAAG6/B,SAAS,CAAC7/B,OAAf;EAAwB2P,cAAAA,UAAU,EAAEiwB,gBAAgB,CAAClwB;EAArD,aAApB;EACD,WAToE;;;EAYrE,cAAIkwB,gBAAgB,CAAC/Y,OAArB,EAA8B;EAC5B,iBAAK,IAAIiZ,aAAT,IAA0BF,gBAAgB,CAAC/Y,OAA3C,EAAoD;EAClDgZ,cAAAA,SAAS,CAAC7/B,OAAV,GAAoB,EAAE,GAAG6/B,SAAS,CAAC7/B,OAAf;EAAwB,mBAAG8/B;EAA3B,eAApB;EACD;EACF;;EAED5Q,UAAAA,QAAQ,CAACjvB,YAAT,CAAsB4/B,SAAtB;EACD,SAnBD;;EAoBAL,QAAAA,aAAa,CAAC/W,MAAD,CAAb;EACD;EACF;EACF,GA7HD;;EA+HA,QAAMwW,mBAAmB,GAAIc,WAAD,IAAiB;EAC3C,UAAMC,mBAAmB,GAAGD,WAAW,CAAClwB,OAAZ,CAAoBkvB,eAApB,CAAoCC,QAApC,GAA+C,IAA3E,CAD2C;;EAE3C,QAAIiB,SAAJ;EACA,UAAMC,MAAM,GAAG,CAAC,WAAD,EAAc,UAAd,EAA0B,QAA1B,EAAoC,WAApC,EAAiD,WAAjD,EAA8D,OAA9D,CAAf;;EACA,UAAMC,cAAc,GAAG,MAAM;EAC3BlT,MAAAA,YAAY,CAACgT,SAAD,CAAZ;EACAA,MAAAA,SAAS,GAAGr7B,UAAU,CAAC,MAAM;EAC3B65B,QAAAA,wBAAwB,CAACsB,WAAD,CAAxB;EACAK,QAAAA,oBAAoB;EACrB,OAHqB,EAGnBJ,mBAHmB,CAAtB;EAID,KAND;;EAOA,UAAMK,YAAY,GAAG,MAAM;EACzBF,MAAAA,cAAc;EACf,KAFD;;EAGA,UAAMtf,mBAAmB,GAAG,MAAM;EAChCqf,MAAAA,MAAM,CAAC/5B,OAAP,CAAem6B,SAAS,IAAIxpC,MAAM,CAACqZ,gBAAP,CAAwBmwB,SAAxB,EAAmCD,YAAnC,EAAiD;EAAEE,QAAAA,OAAO,EAAE;EAAX,OAAjD,CAA5B;EACD,KAFD;;EAGA,UAAMH,oBAAoB,GAAG,MAAM;EACjCF,MAAAA,MAAM,CAAC/5B,OAAP,CAAem6B,SAAS,IAAIxpC,MAAM,CAAC8hB,mBAAP,CAA2B0nB,SAA3B,EAAsCD,YAAtC,CAA5B;EACD,KAFD;;EAGAxf,IAAAA,mBAAmB;EACnBsf,IAAAA,cAAc;EACd,WAAOC,oBAAP,CAtB2C;EAuB5C,GAvBD;;EAyBA,QAAMjB,eAAe,GAAIY,WAAD,IAAiB;EACvC,UAAMS,yBAAyB,GAAG,MAAM;EACtC,YAAM;EAAEnC,QAAAA,YAAF;EAAgBpgB,QAAAA,YAAhB;EAA8BjC,QAAAA;EAA9B,UAA4CpmB,QAAQ,CAAC6vB,eAA3D;EACA,aAAQzJ,SAAS,IAAIqiB,YAAY,GAAGpgB,YAAnB,CAAV,GAA8C,GAArD;EACD,KAHD;;EAIA,UAAMwiB,cAAc,GAAG,MAAM;EAC3B,YAAMC,gBAAgB,GAAGF,yBAAyB,EAAlD;;EACA,UAAIE,gBAAgB,IAAIX,WAAW,CAAClwB,OAAZ,CAAoBkvB,eAApB,CAAoCG,MAA5D,EAAoE;EAClET,QAAAA,wBAAwB,CAACsB,WAAD,CAAxB;EACAjpC,QAAAA,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqC+nB,uBAArC;EACD;EACF,KAND;;EAOA,UAAMC,QAAQ,GAAG,CAACpS,IAAD,EAAOqS,KAAP,KAAiB;EAChC,UAAIC,UAAU,GAAG,KAAjB;EACA,aAAO,YAAmB;EACxB,cAAMC,OAAO,GAAG,IAAhB;;EACA,YAAI,CAACD,UAAL,EAAiB;EAAA,4CAFCE,IAED;EAFCA,YAAAA,IAED;EAAA;;EACfxS,UAAAA,IAAI,CAACyS,KAAL,CAAWF,OAAX,EAAoBC,IAApB;EACAF,UAAAA,UAAU,GAAG,IAAb;EACAl8B,UAAAA,UAAU,CAAC,MAAM;EACfk8B,YAAAA,UAAU,GAAG,KAAb;EACD,WAFS,EAEPD,KAFO,CAAV;EAGD;EACF,OATD;EAUD,KAZD;;EAaA,UAAMF,uBAAuB,GAAGC,QAAQ,CAACH,cAAD,EAAiB,GAAjB,CAAxC;EACA3pC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkCwwB,uBAAlC,EAA2D;EAAEJ,MAAAA,OAAO,EAAE;EAAX,KAA3D;EACA,WAAO,MAAMzpC,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqC+nB,uBAArC,CAAb,CA3BuC;EA4BxC,GA5BD;;EA8BA,MAAIvB,aAAJ;;EACA,QAAMnD,cAAc,GAAG,CAACvX,KAAD,EAAQwc,SAAR,KAAsB;EAC3C,QAAI,CAAAxc,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEyc,OAAP,IAAiB,CAArB,EAAwB;EACxB,UAAM/a,gBAAgB,GAAG8a,SAAS,IAAI9B,aAAtC;EAEA,UAAMz4B,UAAU,GAAGyf,gBAAgB,CAAC3W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMwlC,MAAM,GAAG5V,gBAAgB,CAACvW,OAAjB,CAAyBmsB,MAAxC;EACA,QAAIP,kBAAkB,CAAC90B,UAAD,CAAtB,EAAoC;;EAEpC,QAAIyf,gBAAgB,CAACvW,OAAjB,CAAyBoqB,YAAzB,KAA0C,CAA1C,KAAgD+B,MAAM,KAAK,CAAX,IAAgBA,MAAM,KAAK,CAA3B,IAAgCA,MAAM,KAAK,CAA3F,CAAJ,EAAmG;EACjGF,MAAAA,cAAc,CAAC1V,gBAAD,EAAmB,IAAnB,CAAd;EACA;EACD;;EACD,QAAIsT,kBAAkB,CAACtT,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,QAAIjvB,GAAG,CAAC8C,kBAAJ,IAA0BmsB,gBAAgB,CAACvW,OAAjB,CAAyBoqB,YAAzB,KAA0C,CAAxE,EAA2E;EACzE,YAAMmH,aAAa,GAAGxrC,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;EACA,YAAMw2B,gBAAgB,GAAGzrC,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,CAAzB;;EACA,UAAIu2B,aAAa,IAAIC,gBAArB,EAAuC;EACrCD,QAAAA,aAAa,CAAC9rC,MAAd;EACA+rC,QAAAA,gBAAgB,CAAC/rC,MAAjB;EACD;EACF,KAvB0C;;;EA0B3C,QAAIM,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA5C,IAAoDjV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAvG,EAA6G;EAC3G;EACD,KA5B0C;;;EA8B3C,QAAIub,gBAAgB,CAACvW,OAAjB,CAAyBmsB,MAAzB,IAAmC,IAAnC,KACA,UAAU9pC,IAAV,CAAewiB,SAAS,CAACwc,SAAzB,CAAD,IAA0C,QAAQh/B,IAAR,CAAawiB,SAAS,CAACwc,SAAvB,CAA1C,IAAiF,QAAQh/B,IAAR,CAAawiB,SAAS,CAACwc,SAAvB,CAAjF,IACE,kBAAkBp6B,MADpB,IACgC,UAAU5E,IAAV,CAAewiB,SAAS,CAACwc,SAAzB,CAF/B,CAAJ,EAE0E;EACxE;EACD;;EAED/5B,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiC,eAAjC;EACA,QAAI+1B,MAAM,GAAG,KAAb;EACA,UAAML,UAAU,GAAGzmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAw7B,IAAAA,UAAU,CAAClwC,EAAX,GAAgB,kBAAhB;EACA,UAAMmwC,OAAO,GAAGlW,gBAAgB,CAACvW,OAAjB,CAAyBysB,OAAzB,IAAoC,GAApD;EACA,UAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,IAAAA,UAAU,CAACj3B,YAAX,CAAwB,OAAxB,8GAAsIm3B,SAAtI;EACA3mC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B82B,UAA1B;EAEA,UAAMb,MAAM,GAAG5lC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACA26B,IAAAA,MAAM,CAACrvC,EAAP,GAAY,eAAZ;;EAEA,QAAIi6B,gBAAgB,CAACvW,OAAjB,CAAyBktB,KAAzB,IAAkC,IAAtC,EAA4C;EAC1CL,MAAAA,MAAM,GAAG,IAAT;EACAlB,MAAAA,MAAM,CAACp2B,YAAP,CAAoB,OAApB,EAA6B,4LAA7B;EACD,KAHD,MAGO;EACLo2B,MAAAA,MAAM,CAACp2B,YAAP,CAAoB,OAApB,EAA6BghB,gBAAgB,CAACvW,OAAjB,CAAyBmtB,WAAtD;EACD;;EACDpnC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bi2B,MAA1B;EACA,UAAMyB,MAAM,GAAGrnC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EACA,UAAM+vB,YAAY,GAAGxK,gBAAgB,CAACvW,OAAjB,CAAyBqtB,EAAzB,KAAgC,KAAhC,GAAwC,GAAxC,GAA8C,GAAnE;EACAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAAC9wC,EAAP,GAAY,mBAAZ;EACA,UAAM++B,OAAO,GAAG9E,gBAAgB,CAACvW,OAAjB,CAAyBqb,OAAzC;EACA,QAAIqS,UAAU,GAAG,EAAjB;;EACA,QAAIrS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCqS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAInX,gBAAgB,CAACvW,OAAjB,CAAyB4f,OAAzB,IAAoCrJ,gBAAgB,CAACvW,OAAjB,CAAyB,eAAzB,CAAxC,EAAmF;EACjFotB,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EACD,QAAIrsB,IAAJ,CAtE2C;;EAwE3C,QAAIiV,gBAAgB,CAACnV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGiV,gBAAgB,CAACnV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCkzB,gBAAgB,CAAC3W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,wEAHU,GAGiEqsB,UAHjE,GAG8E,GAH9E,GAIV,yCAJU,GAKV,4GALU,GAMV,wJANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,wCAZU,GAaV,qRAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAa5jB,SAAb,EAAwB6jB,KAAxB,EAA+BE,OAA/B;;EACA,UAAIxX,gBAAgB,CAACvW,OAAjB,CAAyBguB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACA5jB,QAAAA,SAAS,GAAG,SAAZ;EACA6jB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD,OALD,MAKO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACA5jB,QAAAA,SAAS,GAAG,SAAZ;EACA6jB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGnO,gBAAgB,CAACnV,UAAjB,CAA4BgC,KAA9C;EACA,YAAM6qB,eAAe,GAAG1X,gBAAgB,CAACnV,UAAjB,CAA4BkC,WAApD;EACA,UAAImuB,OAAO,GAAG,EAAd;;EACA,UAAIlb,gBAAgB,CAACnV,UAAjB,CAA4BqwB,OAA5B,IAAuC,IAAvC,IAA+Clb,gBAAgB,CAACnV,UAAjB,CAA4BqwB,OAA5B,KAAwC,EAA3F,EAA+F;EAC7FA,QAAAA,OAAO,GAAG,qCAAqClb,gBAAgB,CAACnV,UAAjB,CAA4BqwB,OAAjE,GAA2E,YAArF;EACD;;EAED,UAAIvD,OAAO,GAAG,EAAd;;EACA,UAAI3X,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD0T,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/FqrB,QAAAA,OAAO,GAAG,8CAA8C3X,gBAAgB,CAACnV,UAAjB,CAA4ByB,QAA1E,GAAqF,oBAArF,GAA4G6hB,SAA5G,GAAwH,WAAlI;EACD;;EACD,YAAMyJ,UAAU,GAAG,iCAAiCr3B,UAAjC,GAA8C,oBAAjE;EACA,YAAMsM,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6E4jB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,wCAHY,GAG+B/jB,SAH/B,GAG2C,IAH3C,GAGkD0a,SAHlD,GAG8D,QAH5E;EAIA,YAAMza,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DikB,eAA7D,GAA+E,QAA/E,GAA0FC,OAA1F,GAAoGuD,OAApG,GACX,cADF;EAEAnwB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EACDmjB,IAAAA,MAAM,CAAC73B,YAAP,CAAoB,OAApB,EAA6B,yLAA7B;EACAo2B,IAAAA,MAAM,CAACj2B,WAAP,CAAmB03B,MAAnB,EA9H2C;;EAiI3C,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACAtoC,IAAAA,QAAQ,CAACkzB,aAAT,CAAuBmV,aAAvB;;EAEA,QAAI7X,gBAAgB,CAACvW,OAAjB,CAAyB,eAAzB,CAAJ,EAA+C;EAC7CsB,MAAAA,IAAI,GAAGsd,0BAA0B,CAACrI,gBAAD,EAAmBjV,IAAnB,CAAjC;EACD;;EACD8rB,IAAAA,MAAM,CAACkB,MAAP,GAAgBhtB,IAAhB;;EAEA8rB,IAAAA,MAAM,CAAChX,MAAP,GAAgB,MAAM;EACpB,YAAMmJ,UAAU,GAAGx5B,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6C+wB,eAA7C,CAA6D/wB,cAA7D,CAA4E,YAA5E,CAAnB;EACAywB,MAAAA,aAAa,CAACpQ,OAAD,EAAU9E,gBAAV,EAA4BgJ,UAA5B,EAAwC,eAAxC,EAAyDsN,MAAzD,CAAb;EACD,KAHD;EAID,GA7ID;;EA+IA,MAAI,CAAC9mC,QAAQ,CAACkkB,IAAd,EAAoB;EAClB,QAAI2f,WAAW,GAAG,CAAlB,EAAqB;EACnBA,MAAAA,WAAW;EACX70B,MAAAA,UAAU,CAAC20B,GAAD,EAAM,IAAN,EAAYpnB,GAAZ,EAAiB;EACzBpW,QAAAA,MAAM,EAAEuzB,OADiB;EAEzBtzB,QAAAA,OAAO,EAAE+S,QAFgB;EAGzBjT,QAAAA,OAAO,EAAEozB,QAHgB;EAIzB18B,QAAAA,MAAM,EAAEgnC;EAJiB,OAAjB,CAAV;EAMD;;EACD;EACD;;EACD,QAAM+H,uBAAuB,GAAIC,cAAD,IAAoB;EAClDtwC,IAAAA,MAAM,CAACgV,IAAP,CAAYs7B,cAAZ,EAA4BjlB,GAA5B,CAAgC9pB,GAAG,IAAI;EACrC,UAAIgvC,SAAJ,EAAet1C,EAAf;;EACA,UAAIq1C,cAAc,CAAC/uC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAhC,EAAuC;EACrC62B,QAAAA,SAAS,GAAGD,cAAc,CAAC/uC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAxC;EACAze,QAAAA,EAAE,GAAGyJ,QAAQ,CAACiV,cAAT,CAAwB42B,SAAxB,CAAL;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,GAAGD,cAAc,CAAC/uC,GAAD,CAAd,CAAoBod,OAApB,CAA4B+d,WAAxC;EACAzhC,QAAAA,EAAE,GAAGyJ,QAAQ,CAAC0xB,aAAT,CAAuBma,SAAvB,CAAL;EACD;;EACD,UAAIt1C,EAAE,KAAK,IAAX,EAAiB;EACfq1C,QAAAA,cAAc,CAAC/uC,GAAD,CAAd,CAAoBwe,UAApB,CAA+BnR,IAA/B,KAAwC,CAAxC,GAA4C6tB,2BAA2B,CAAC6T,cAAc,CAAC/uC,GAAD,CAAf,CAAvE,GAA+Fs7B,6BAA6B,CAACyT,cAAc,CAAC/uC,GAAD,CAAf,CAA5H;EACA,eAAO+uC,cAAc,CAAC/uC,GAAD,CAArB;EACD;EACF,KAbD;EAcD,GAfD;;EAiBA,QAAMivC,eAAe,GAAIF,cAAD,IAAoB;EAC1C1qC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgC,MAAM;EACpC,UAAIzQ,KAAK,GAAG,CAAZ;;EACA,UAAIA,KAAK,GAAG,EAAZ,EAAgB;EACd,cAAMxC,CAAC,GAAGijB,WAAW,CAAC,MAAM;EAC1BohB,UAAAA,uBAAuB,CAACC,cAAD,CAAvB;;EACA,cAAItwC,MAAM,CAACgV,IAAP,CAAYs7B,cAAZ,EAA4B3uC,MAA5B,KAAuC,CAAvC,IAA4C6M,KAAK,KAAK,EAA1D,EAA8D;EAC5D0gB,YAAAA,aAAa,CAACljB,CAAD,CAAb;EACAskC,YAAAA,cAAc,GAAG,EAAjB;EACD;;EACD9hC,UAAAA,KAAK;EACN,SAPoB,EAOlB,GAPkB,CAArB;EAQD;EACF,KAZD;EAaD,GAdD;;EAgBA,MAAIyS,GAAG,CAACwvB,YAAJ,IAAoB,IAAxB,EAA8B;EAC5B,UAAMH,cAAc,GAAG,EAAvB;;EACA,SAAK,IAAIrmC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAACwvB,YAAJ,CAAiB9uC,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAM4kC,WAAW,GAAG5tB,GAAG,CAACwvB,YAAJ,CAAiBxmC,KAAjB,CAApB;;EACA,UAAI4kC,WAAW,CAAClwB,OAAZ,CAAoBoqB,YAApB,IAAoC,IAApC,IAA4C8F,WAAW,CAAClwB,OAAZ,CAAoBoqB,YAApB,KAAqC,CAArF,EAAwF;EACtF0E,QAAAA,sBAAsB,CAACoB,WAAD,CAAtB;EACD,OAFD,MAEO,IAAIA,WAAW,CAAClwB,OAAZ,CAAoBoqB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnDmF,QAAAA,aAAa,GAAGW,WAAhB;EACAjpC,QAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqBulB,YAArB,GAAoCpD,cAApC;EACD,OAHM,MAGA,IAAI8D,WAAW,CAAClwB,OAAZ,CAAoBoqB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnD,YAAI8F,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EACrCkuB,UAAAA,oBAAoB,CAAC+R,WAAD,CAApB;EACD,SAFD,MAEO,IAAIA,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,IAAqCigC,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAzE,EAA4E;EAAE;EACnF,gBAAMsjB,OAAO,GAAG2c,WAAW,CAAClwB,OAAZ,CAAoBjF,KAApB,GAA4BhV,QAAQ,CAACiV,cAAT,CAAwBk1B,WAAW,CAAClwB,OAAZ,CAAoBjF,KAA5C,CAA5B,GAAiFhV,QAAQ,CAAC0xB,aAAT,CAAuByY,WAAW,CAAClwB,OAAZ,CAAoB+d,WAA3C,CAAjG;;EACA,cAAIxK,OAAO,KAAK,IAAhB,EAAsB;EACpB2c,YAAAA,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,GAAoC6tB,2BAA2B,CAACoS,WAAD,CAA/D,GAA+EhS,6BAA6B,CAACgS,WAAD,CAA5G;EACD,WAFD,MAEO;EACLyB,YAAAA,cAAc,CAACzB,WAAW,CAACtwB,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAD,CAAd,GAAoDupC,WAApD,CADK;EAEN;EACF,SAPM,MAOA,IAAIA,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CslB,UAAAA,mBAAmB,CAAC2a,WAAD,EAAc,KAAd,CAAnB;EACD,SAFM,MAEA,IAAIA,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CmuB,UAAAA,gBAAgB,CAAC8R,WAAD,EAAcvG,OAAd,CAAhB;EACD,SAFM,MAEA,IAAIuG,WAAW,CAAC9uB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CsuB,UAAAA,UAAU,CAAC2R,WAAD,CAAV;EACD,SAFM,MAEA;EACLpB,UAAAA,sBAAsB,CAACoB,WAAD,CAAtB;EACD;EACF;EACF,KA7B2B;;;EA+B5B,QAAI7uC,MAAM,CAACgV,IAAP,CAAYs7B,cAAZ,EAA4B3uC,MAAhC,EAAwC;EACtC,UAAI+C,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCygB,QAAAA,uBAAuB,CAACC,cAAD,CAAvB;EACD,OAFD,MAEO;EACLE,QAAAA,eAAe,CAACF,cAAD,CAAf;EACD;EACF;EACF;;EAED,QAAMI,wBAAwB,GAAG,MAAM;EACrC,QAAIzvB,GAAG,CAAC+M,aAAR,EAAuB;EACrBD,MAAAA,kBAAkB,CAAC9M,GAAD,CAAlB;EACA;EACD;;EACD,QAAIA,GAAG,CAACgN,YAAR,EAAsB;EACpB,YAAM0iB,MAAM,GAAG,EAAf;;EACA,WAAK,IAAI1mC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAACgN,YAAJ,CAAiBtsB,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAIu+B,kBAAkB,CAACvnB,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAD,CAAlB,KAAgD,KAApD,EAA2D;EACzD0mC,UAAAA,MAAM,CAACjnC,IAAP,CAAYuX,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAZ;EACD;EACF;;EACD8jB,MAAAA,kBAAkB,CAAC4iB,MAAD,CAAlB;EACD;EACF,GAdD;;EAgBA,MAAI1vB,GAAG,CAAC4M,eAAJ,IAAuB5M,GAAG,CAACgN,YAAJ,IAAoB,IAA/C,EAAqD;EACnD;EACJ;EACA;EACA;EACA;EAEI,QAAIyD,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EACjC;;EACD,QAAIloB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBsY,MAAAA,GAAG,CAAC4M,eAAJ,IAAuBD,uBAAuB,CAAC3M,GAAG,CAAC4M,eAAL,CAA9C;EACAU,MAAAA,kBAAkB,CAAC+Z,OAAD,CAAlB,CACG7Y,IADH,CACQ,MAAM;EACVihB,QAAAA,wBAAwB;EACzB,OAHH,EAIGhhB,KAJH,CAISvrB,CAAC,IAAI,EAJd;EAKD,KAPD,MAOO;EACLusC,MAAAA,wBAAwB;EACzB;EACF;;EAED,MAAIzvB,GAAG,CAACgkB,aAAR,EAAuB;EACrBD,IAAAA,oBAAoB,CAAC/jB,GAAG,CAACgkB,aAAL,EAAoB3jC,MAApB,EAA4BsJ,OAA5B,CAApB;EACD;;EAED,MAAIqW,GAAG,CAAC2vB,IAAR,EAAc;EACZ3qC,IAAAA,GAAG,CAACiD,aAAJ,CAAkB2nC,cAAlB,CAAiC5vB,GAAG,CAAC2vB,IAArC;EACA;EACD;;EAED,MAAIptC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI;EACF,UAAIud,GAAG,CAAC6vB,IAAJ,IAAY,IAAhB,EAAsB;EACpB,cAAMC,SAAS,GAAG9vB,GAAG,CAAC6vB,IAAJ,CAAS9B,MAA3B;EACA,cAAMgC,UAAU,GAAG/vB,GAAG,CAAC6vB,IAAJ,CAAS31B,OAA5B;EACA,cAAM81B,UAAU,GAAGhwB,GAAG,CAAC6vB,IAAJ,CAASI,UAA5B;EACA,cAAMjqB,GAAG,GAAG3kB,MAAM,EAAlB;EACAkB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,QAA3B,EAAqCmgB,GAArC;EACAzjB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,MAA3B,EAAmCmqC,UAAnC;EACAtT,QAAAA,aAAa,CAACoT,SAAD,CAAb;EACAvtC,QAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;;EACA,YAAI/B,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChCqR,UAAAA,oBAAoB,CAAC43B,UAAD,EAAa,IAAb,CAApB;EACD,SAFD,MAEO;EACL53B,UAAAA,oBAAoB,CAAC43B,UAAD,EAAa,KAAb,CAApB;EACD;EACF;;EACD,UAAI/vB,GAAG,CAACrH,GAAJ,IAAW,IAAf,EAAqB;EACnBA,QAAAA,GAAG,CAACqH,GAAG,CAACrH,GAAL,CAAH;EACD;;EACD,UAAIqH,GAAG,CAACkwB,WAAJ,IAAmB,IAAnB,IAA2BlwB,GAAG,CAACkwB,WAAJ,CAAgBxvC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACA67B,QAAAA,eAAe,CAACvc,GAAG,CAACkwB,WAAL,EAAkB,IAAlB,CAAf;EACD;;EACD,UAAIlwB,GAAG,CAACmwB,WAAJ,IAAmB,IAAnB,IAA2BnwB,GAAG,CAACmwB,WAAJ,CAAgBzvC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACA67B,QAAAA,eAAe,CAACvc,GAAG,CAACmwB,WAAL,EAAkB,IAAlB,CAAf;EACD;EACF,KA3BD,CA2BE,OAAOjtC,CAAP,EAAU;EACVmkC,MAAAA,OAAO,CAAC/7B,KAAR,CAAc,iCAAiCpI,CAA/C;EACD;EACF;EACF,CAv5BD;;;;EC7Be,MAAMktC,IAAN,CAAW;EAGxBr2C,EAAAA,WAAW,OAER;EAAA,QAFU;EACX+S,MAAAA;EADW,KAEV;EAAA;EAAA;EAAA;EAAA;EACD,gGAAgCA,uBAAhC;EACD;;EAEDujC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAIC,UAAU,GAAG/tC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;;EACA,QAAI2qC,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,GAAG,CAAb;EACD;;EACD,WAAOA,UAAP;EACD;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,UAAMC,WAAW,GAAGjuC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAApB;;EACA,QAAI6qC,WAAW,IAAI,IAAnB,EAAyB;EACvB,aAAO,IAAIpxC,IAAJ,CAASoxC,WAAW,GAAG,IAAvB,CAAP;EACD;EACF;;EA5BuB;;ECCnB,MAAMC,SAAS,GAAG;EACvBC,EAAAA,OAAO,EAAE,CADc;EAEvBC,EAAAA,KAAK,EAAE,CAFgB;EAGvBC,EAAAA,IAAI,EAAE,CAHiB;EAIvBC,EAAAA,KAAK,EAAE,CAJgB;EAKvBC,EAAAA,QAAQ,EAAE;EALa,CAAlB;;;;;;;;EAQA,MAAMC,MAAN,CAAa;EAGlBh3C,EAAAA,WAAW,CAAEi3C,QAAF,EAAY;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SADvBC,SACuB,GADX,EACW;EACrB,8DAAiBD,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BP,SAAS,CAACG,IAAzD;EACA,SAAKK,SAAL,GAAiB,EAAjB;EACD;;EAED,MAAID,QAAJ,GAAgB;EACd,uCAAO,IAAP;EACD;;EAED,MAAIA,QAAJ,CAAcA,QAAd,EAAwB;EACtB,8DAAiBA,QAAjB;EACD;;EAED1lC,EAAAA,KAAK,CAAEmU,OAAF,EAAW;EACd,QAAI,2DAAkBgxB,SAAS,CAACE,KAAhC,EAAuC;EACrC,oDAAU,OAAV,EAAmBlxB,OAAnB;EACD;EACF;;EAED+gB,EAAAA,IAAI,CAAE/gB,OAAF,EAAW;EACb,QAAI,2DAAkBgxB,SAAS,CAACG,IAAhC,EAAsC;EACpC,oDAAU,KAAV,EAAiBnxB,OAAjB;EACD;EACF;;EAEDlZ,EAAAA,KAAK,CAAEkZ,OAAF,EAAW;EACd,QAAI,2DAAkBgxB,SAAS,CAACI,KAA5B,gCAAqC,IAArC,iCAAJ,EAA8D;EAC5D,oDAAU,OAAV,EAAmBpxB,OAAnB;EACD;EACF;;EAEDyxB,EAAAA,OAAO,CAAEzxB,OAAF,EAAW;EAChB,QAAI,2DAAkBgxB,SAAS,CAACK,QAAhC,EAA0C;EACxC,oDAAU,UAAV,EAAsBrxB,OAAtB;EACD;EACF;;EAED7e,EAAAA,WAAW,CAAEuwC,IAAF,EAAQnwB,WAAR,EAAqB;EAC9B,SAAKiwB,SAAL,CAAe1sC,CAAf,GAAmB4sC,IAAnB;EACA,SAAKF,SAAL,CAAe/uC,CAAf,GAAmB8e,WAAnB;EACA,SAAK1V,KAAL,WAAcE,sBAAd,cAAwC2lC,IAAxC,eAAiDnwB,WAAjD;EACD;;EA5CiB;;6BA8CZowB,OAAO3xB,SAAS;EACpB,MAAI9a,MAAM,CAAC8P,OAAX,EAAoB;EAClB,QAAI;EACF,YAAMyX,EAAE,GAAG,IAAI9sB,IAAJ,GAAWoC,OAAX,EAAX;EACAiT,MAAAA,OAAO,CAAC28B,KAAD,CAAP,sBAA6BllB,EAA7B,gBAAqCzM,OAArC;EACD,KAHD,CAGE,OAAOvc,CAAP,EAAU;EACb;EACF;;uCAEqB;EACpB,SAAQ,OAAO0kC,cAAP,KAA0B,WAA1B,IAAyCA,cAAc,CAACyJ,MAAf,KAA0B,EAA3E;EACD;;;;;;;;EC/DY,MAAMC,cAAN,CAAqB;EAIvB;EAGXv3C,EAAAA,WAAW,OAGR;EAAA,QAHU;EACXsG,MAAAA,MADW;EAEXyM,MAAAA;EAFW,KAGV;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SANHuP,UAMG;EAAA,SALHuhB,UAKG;EACD,SAAKjgB,SAAL,GAAiBpb,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;EACA,8DAAetF,MAAf;EACA,gGAAgCyM,uBAAhC;EACD;;EAED,MAAI6Q,SAAJ,GAAiB;EACf,uCAAO,IAAP;EACD;;EAED,MAAIA,SAAJ,CAAeA,SAAf,EAA0B;EACxB,gEAAkBA,SAAlB;EACD;;EAEDnT,EAAAA,sBAAsB,GAAI;EACxB,QAAI+mC,UAAU,GAAGhvC,cAAc,CAAC2B,UAAf,CAA0B,KAAKmY,UAA/B,CAAjB;EACA,QAAI/c,GAAG,GAAG,EAAV;;EAEA,QAAIiyC,UAAU,IAAI,IAAlB,EAAwB;EACtB;EACAA,MAAAA,UAAU,GAAGA,UAAU,CAACxwC,OAAX,CAAmBjG,gBAAnB,EAAqC,GAArC,CAAb;EAEAwE,MAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAWsuC,UAAX,CAAN;;EACA,UAAI,CAACzyC,QAAQ,CAACQ,GAAD,CAAb,EAAoB;EAClBA,QAAAA,GAAG,GAAG,EAAN;EACD,OAFD,MAEO;EACL,YAAI,OAAOA,GAAG,CAACyL,CAAX,KAAiB,WAArB,EAAkC;EAAE;EAClC,gBAAMuC,QAAQ,GAAGhO,GAAG,CAACyL,CAArB;EACA,gBAAMib,GAAG,GAAG3kB,MAAM,EAAlB;;EACA,cAAK2kB,GAAG,GAAG1Y,QAAP,GAAoB/R,wBAAwB,GAAG,EAAnD,EAAwD;EACtD;EACA;EACA;EACA+D,YAAAA,GAAG,GAAG,EAAN;EACD;EACF;EACF;EACF;;EACD,SAAKs+B,UAAL,GAAkBt+B,GAAlB;EACA,WAAOA,GAAP;EACD;;EAED0L,EAAAA,sBAAsB,CAAE1L,GAAF,EAAO;EAC3B,UAAMkyC,MAAM,GAAG5uC,IAAI,CAACC,SAAL,CAAevD,GAAf,CAAf;EACAiD,IAAAA,cAAc,CAAC8C,iBAAf,CAAiC,KAAKgX,UAAtC,EAAkDm1B,MAAlD,EAA0Dj2C,wBAA1D,EAAoFuT,WAAW,EAA/F;EACD;;EAEDhE,EAAAA,aAAa,CAAEjB,OAAF,EAAW;EACtB;EACA;EACA,QAAI,OAAO,KAAK8T,SAAZ,KAA0B,WAA1B,IAAyC,KAAKA,SAAL,KAAmB9T,OAAhE,EAAyE;EACvE,YAAM4nC,kBAAkB,GAAGlvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAA3B,CADuE;;EAGvE,UAAI,OAAO8rC,kBAAP,KAA8B,WAAlC,EAA+C;EAC7ClvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC,CAAjC;EACD,OAJD,MAIO,IAAI4rC,kBAAkB,KAAK5nC,OAA3B,EAAoC;EACzC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC4rC,kBAAjC;EACAlvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACA,YAAI6nC,YAAY,GAAGnvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAnB;;EACA,YAAI,OAAO+rC,YAAP,KAAwB,WAA5B,EAAyC;EACvCA,UAAAA,YAAY,GAAG,CAAf;EACD;;EACDnvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC6rC,YAAY,GAAG,CAAhD;EACD;;EACD,WAAK/zB,SAAL,GAAiB9T,OAAjB;EACD;EACF;;EAED8nC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,KAAK/T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAKpzB,sBAAL,EAAlB;EACD;;EACD,UAAMonC,YAAY,GAAG,KAAKhU,UAAL,CAAgB9zB,CAArC;;EACA,QAAI8nC,YAAY,IAAI,IAApB,EAA0B;EACxB,YAAM1lB,EAAE,GAAG7qB,MAAM,EAAjB;EACA,aAAOC,IAAI,CAACC,KAAL,CAAW2qB,EAAE,GAAG0lB,YAAhB,CAAP;EACD;EACF;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EAED,QAAI,KAAKjU,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAKpzB,sBAAL,EAAlB;EACD;;EACD,WAAO,KAAKozB,UAAL,CAAgBpkB,CAAvB;EACD;;EAxGiC;;ECGpC,IAAIs4B,KAAK,GAAG,CAAZ;EACA,IAAIC,WAAW,GAAG,CAAlB;;;;;;;;;;;;;;;;EAEe,MAAMC,cAAN,CAAqB;EASlCj4C,EAAAA,WAAW,OAAiE;EAAA,QAA/D;EAAEsG,MAAAA,MAAF;EAAU2R,MAAAA,OAAV;EAAmBpI,MAAAA,MAAnB;EAA2BC,MAAAA,OAA3B;EAAoCiD,MAAAA;EAApC,KAA+D;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAH7D;EAG6D;EAAA,SAF5E7B,gBAE4E,GAFzD,KAEyD;EAC1E,8DAAe5K,MAAf;EACA,gEAAgB2R,OAAhB;EACA,8DAAepI,MAAf;EACA,gEAAgBC,OAAhB;EACA,gGAAgCiD,uBAAhC;EAEA2E,IAAAA,iBAAiB,CAACpR,MAAlB,GAA2BA,MAA3B;EACAoR,IAAAA,iBAAiB,CAAC7H,MAAlB,GAA2BA,MAA3B;EACA6H,IAAAA,iBAAiB,CAACO,OAAlB,GAA4BA,OAA5B;EACD;;EAED9G,EAAAA,mBAAmB,GAAI;EACrB,UAAMxE,SAAS,GAAGnE,cAAc,CAAC2C,kBAAf,CAAkCrJ,YAAlC,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;EAC1D;EACD;;EACD,SAAKuE,gBAAL,GAAwB,IAAxB;;EACA,SAAK,MAAM3G,GAAX,IAAkBoC,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAAClH,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,cAAM6B,WAAW,GAAGO,SAAS,CAACpC,GAAD,CAA7B;;EACA,YAAI,OAAO6B,WAAW,CAAC8rC,KAAnB,KAA6B,WAAjC,EAA8C;EAC5C,kEAAa1rC,KAAb,CAAmB,+BAA+BJ,WAAW,CAACG,CAA9D;;EACA,cAAI,OAAOH,WAAW,CAACG,CAAnB,KAAyB,WAA7B,EAA0C;EACxC;EACZ;EAEY,kBAAMuD,OAAO,GAAGjH,IAAI,CAACK,KAAL,CAAWV,cAAc,CAAC2B,UAAf,CAA0B5I,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAA/D,CAAX,CAAhB;;EACA,gBAAI6P,OAAJ,aAAIA,OAAJ,uBAAIA,OAAO,CAAEC,CAAb,EAAgB;EACd3D,cAAAA,WAAW,CAACG,CAAZ,GAAgBH,WAAW,CAACG,CAAZ,GAAgB,KAAhB,GAAwBuD,OAAO,CAACC,CAAhD;EACD;;EACD2H,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BzL,WAAW,CAACG,CAA1C;EACD;;EACDH,UAAAA,WAAW,CAAC8rC,KAAZ,GAAoB,IAApB;EACD;EACF;EACF;;EACD1vC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/I,YAAhC,EAA8C6K,SAA9C;EACA,SAAKuE,gBAAL,GAAwB,KAAxB;EACD;;EAEDkP,EAAAA,qBAAqB,CAAExK,UAAF,EAAcuiC,UAAd,EAA0B;EAC7C;EACA,QAAI,OAAOA,UAAP,KAAsB,WAA1B,EAAuC;EACrCviC,MAAAA,UAAU,GAAGxP,sBAAsB,CAACwP,UAAD,8BAAa,IAAb,wBAAnC;EACD;;EAED,QAAI,CAACtQ,aAAa,CAAC,wDAAa4xC,SAAd,CAAlB,EAA4C;EAC1CthC,MAAAA,UAAU,CAACwiC,UAAX,GAAwB,wDAAalB,SAArC;EACA,8DAAaA,SAAb,GAAyB,EAAzB;EACD;;EAEDthC,IAAAA,UAAU,CAAC3V,EAAX,GAAgB,0DAAcA,EAA9B;;EAEA,QAAIgG,YAAY,CAAC,wDAAa2G,OAAd,CAAhB,EAAwC;EACtCgJ,MAAAA,UAAU,CAACoM,CAAX,GAAe,wDAAapV,OAA5B;EACD;;EAED,UAAMrH,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACAmF,IAAAA,UAAU,CAAC7F,CAAX,GAAexK,GAAG,CAACwK,CAAnB,CAlB6C;;EAmB7C6F,IAAAA,UAAU,CAACyiC,EAAX,GAAiB,OAAO9yC,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAzD,CAnB6C;;EAoB7C,QAAIoxB,KAAK,GAAGnnC,QAAQ,CAACqB,QAAT,CAAkBo+B,QAA9B;EACA0H,IAAAA,KAAK,GAAGA,KAAK,CAAC7pC,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAR;EACA4O,IAAAA,UAAU,CAAC0iC,EAAX,GAAgB,EAAE,GAAG1iC,UAAU,CAAC0iC,EAAhB;EAAoBC,MAAAA,GAAG,EAAE,iBAAzB;EAAyDpP,MAAAA,QAAQ,EAAE0H,KAAnE;EAA0E,SAAG5lC,GAAG,CAACgD;EAAjF,KAAhB,CAtB6C;;EAuB7C,QAAI4/B,cAAc,CAACpoC,cAAf,CAA8B,QAA9B,CAAJ,EAA6C;EAAEmQ,MAAAA,UAAU,CAACpJ,KAAX,GAAmB,IAAnB;EAAyB;;EAExE,WAAOoJ,UAAP;EACD;;EAEDyK,EAAAA,QAAQ,CAAErX,IAAF,EAAQ;EACd;EACA,oEAAoBR,cAAc,CAACwD,mBAAf,CAAmChL,KAAnC,CAApB;;EACA,QAAI,kEAAsBmF,SAAtB,gCAAmC,IAAnC,6BAAJ,EAA0D;EACxD6C,MAAAA,IAAI,CAACwvC,EAAL,GAAU,IAAV;;EACA,8DAAahsC,KAAb,CAAmB,yEAAnB;EACD;;EACD,oCAAI,IAAJ,6DAAqC;EACnC,YAAMisC,YAAY,GAAGjwC,cAAc,CAACoD,WAAf,CAA2B,QAA3B,CAArB;EACA,YAAM8sC,aAAa,GAAGlwC,cAAc,CAACoD,WAAf,CAA2B,MAA3B,CAAtB,CAFmC;;EAKnC,UAAI,OAAO6sC,YAAP,KAAwB,WAAxB,IAAuC,OAAOC,aAAP,KAAyB,WAApE,EAAiF;EAC/E1vC,QAAAA,IAAI,CAAC2vC,KAAL,GAAa,IAAb;EACA;EACD;;EACD,YAAM1sB,GAAG,GAAG3kB,MAAM,EAAlB,CATmC;;EAWnC,UAAImxC,YAAY,GAAGC,aAAf,GAA+BzsB,GAAnC,EAAwC;EACtCjjB,QAAAA,IAAI,CAAC2vC,KAAL,GAAa,IAAb;EACD;EACF;EACF,GApGiC;;EAuGlC;EACF;EACA;EACA;EACA;EACA;;;EACEp4B,EAAAA,kBAAkB,CAAEtM,GAAF,EAAOoK,QAAP,EAAiBtG,WAAjB,EAA8B5E,OAA9B,EAAuC;EACvD,UAAM8Y,GAAG,GAAG3kB,MAAM,EAAlB;EACA2M,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,EAAEhJ,GAAG,CAACC,WAAJ,CAAgB2B,KAA9B,CAAd;EACA,UAAM7D,IAAI,GAAGiL,GAAG,GAAG,KAAN,GAAcgY,GAAd,GAAoB,MAApB,GAA6B8rB,KAA1C;EACAvvC,IAAAA,cAAc,CAAC4D,WAAf,CAA2BpD,IAA3B,EAAiCiC,GAAG,CAACC,WAAJ,CAAgB2B,KAAjD,8BAAwD,IAAxD,yBAJuD;;EAOvD,QAAI5B,GAAG,CAAC6C,OAAR,EAAiB,OAPsC;EASvD;EACA;EACA;EACA;;EACA,QAAI,CAAC,CAACuQ,QAAD,IAAc,kEAAsBlY,SAAtB,gCAAmC,IAAnC,6BAAf,KAAyE,CAACyE,MAAM,CAAC0F,eAArF,EAAsG;EACpG,UAAI2b,GAAG,KAAK+rB,WAAZ,EAAyB;EACvBD,QAAAA,KAAK;EACN,OAFD,MAEO;EACLC,QAAAA,WAAW,GAAG/rB,GAAd;EACA8rB,QAAAA,KAAK,GAAG,CAAR;EACD;;EACDntC,MAAAA,MAAM,CAAC2F,OAAP,GAAiBtF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC;EACA6K,MAAAA,iBAAiB,CAACG,WAAlB,CAA8B7O,IAA9B,EAAoC,KAApC,EAA2C+O,WAA3C,EAAwD5E,OAAxD;EACD,KATD,MASO;EACL,8DAAa3G,KAAb,uCAAkDvB,GAAG,CAACgC,YAAtD,2DAAuF,IAAvF,wEAAyIrC,MAAM,CAAC0F,eAAhJ;EACD;EACF;;EAEDQ,EAAAA,sBAAsB,CAAE8nC,SAAF,EAAa;EACjC,UAAM1wB,OAAO,GAAG1f,cAAc,CAAC2C,kBAAf,CAAkC7H,sBAAlC,CAAhB,CADiC;;EAGjC,QAAI4kB,OAAJ,EAAa;EACX,YAAMlf,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,MAAZ;;EACA,UAAI3N,YAAY,CAAC2yC,SAAD,CAAhB,EAA6B;EAC3B5vC,QAAAA,IAAI,CAACgZ,CAAL,GAAS42B,SAAT;EACD;;EACD5vC,MAAAA,IAAI,CAAC0e,MAAL,GAAc,YAAd;EACA1e,MAAAA,IAAI,CAAC/I,EAAL,GAAU,0DAAcA,EAAxB;;EAEA,YAAMsF,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EAEAzH,MAAAA,IAAI,CAAC+G,CAAL,GAASxK,GAAG,CAACwK,CAAb,CAXW;;EAYX,YAAMuQ,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACA5I,MAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EAA2C,IAA3C;EACA9P,MAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACD,KAtBgC;;;EAwBjC,SAAK0jC,aAAL,CAAmB7e,OAAnB;EACD;;EAED6e,EAAAA,aAAa,CAAE7e,OAAF,EAAW;EACtB,QAAI,CAACA,OAAL,EAAc,OADQ;;EAGtBA,IAAAA,OAAO,GAAG,KAAK9H,qBAAL,CAA2B8H,OAA3B,EAAoC,IAApC,CAAV;EACAA,IAAAA,OAAO,GAAGrf,IAAI,CAACC,SAAL,CAAeof,OAAf,CAAV;;EACA,QAAI5P,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAACuS,OAAD,8BAAU,IAAV,wBAA/B,CAAtB;EACAxQ,IAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EARsB;;EAUtB9P,IAAAA,cAAc,CAACC,IAAf,CAAoBxG,cAApB,EAAoC,IAApC;EACD;;EAED8R,EAAAA,YAAY,CAAE/K,IAAF,EAAQ;EAClB,gFAAyBA,IAAI,CAACmK,OAA9B;;EACAnK,IAAAA,IAAI,GAAG,KAAKoX,qBAAL,CAA2BpX,IAA3B,EAAiC7C,SAAjC,CAAP;EACA,SAAKka,QAAL,CAAcrX,IAAd;EACAA,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;EACA,UAAM2F,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EAEA,SAAKC,kBAAL,CAAwBjI,WAAxB,EAAqCrN,GAAG,CAACgC,YAAzC,EAAuD,KAAvD,EAA8DjE,IAAI,CAACmK,OAAnE;EACD;;EA2BD0lC,EAAAA,IAAI,CAAE5kC,GAAF,EAAO2Z,IAAP,EAAa;EACf,WAAOkrB,KAAK,CAAC7kC,GAAD,EAAM;EAChB8kC,MAAAA,MAAM,EAAE,MADQ;EAEhBC,MAAAA,OAAO,EAAE;EAAE,wBAAgB;EAAlB,OAFO;EAGhBprB,MAAAA,IAAI,EAAEA;EAHU,KAAN,CAAL,CAKJ6G,IALI,CAKEwkB,QAAD,IAAc;EAClB,UAAIA,QAAQ,CAACC,EAAb,EAAiB;EACf,eAAOD,QAAQ,CAACzc,IAAT,EAAP;EACD;;EACD,YAAMyc,QAAN;EACD,KAVI,EAWJxkB,IAXI,CAWEzrB,IAAD,IAAU;EACd,8DAAawD,KAAb,CAAmB,sBAAnB,EAA2CxD,IAA3C;;EACA,aAAOA,IAAP;EACD,KAdI,EAeJ0rB,KAfI,CAeGvrB,CAAD,IAAO;EACZ,8DAAaqD,KAAb,CAAmB,4BAAnB,EAAiDrD,CAAjD;;EACA,YAAMA,CAAN;EACD,KAlBI,CAAP;EAmBD;;EA1OiC;;2DA6LbgK,SAAS;EAC5B,MAAI3K,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI,OAAOuC,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,UAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,QAAAA,GAAG,CAAC+B,eAAJ,GAAsB,EAAtB;EACD;EACF;;EAED,UAAMmsC,KAAK,GAAG7xC,MAAM,EAApB;EACA,QAAI8xC,SAAS,GAAGnuC,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAhB;;EACA,QAAI,OAAOimC,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,CAAC,CAAD,CAAT,GAAeD,KAAf;EACAC,MAAAA,SAAS,CAAC,CAAD,CAAT;EACD,KAHD,MAGO;EACLA,MAAAA,SAAS,GAAG,EAAZ;EACAA,MAAAA,SAAS,CAAC1qC,IAAV,CAAe,CAAf;EACA0qC,MAAAA,SAAS,CAAC1qC,IAAV,CAAeyqC,KAAf;EACAC,MAAAA,SAAS,CAAC1qC,IAAV,CAAeyqC,KAAf;EACD;;EACDluC,IAAAA,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,IAA+BimC,SAA/B;EACA5wC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;EACD;EACF;;;;;;;;;;;;EC5MY,MAAMqsC,OAAN,SAAsB9mC,KAAtB,CAA4B;EAMzCvS,EAAAA,WAAW,OAKX8S,MALW,EAKH;EAAA,QALK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGX3R,MAAAA;EAHW,KAKL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,8DAAeA,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACD,GAjBwC;;;EAoBzCpE,EAAAA,IAAI,GAAiB;EAAA,sCAAZ4qC,UAAY;EAAZA,MAAAA,UAAY;EAAA;;EACnB,QAAIruC,GAAG,CAAC2C,kBAAR,EAA4B;EAC1B,oFAA0B3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA1B,GAA8BsE,GAAG,CAAC4C,YAAlC,GAAiDyrC,UAA3E;EACD,KAFD,MAEO;EACLruC,MAAAA,GAAG,CAAC4C,YAAJ,CAAiBa,IAAjB,CAAsB,GAAG4qC,UAAzB;EACD;;EACD,WAAO,CAAP;EACD;;EAEDrmC,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAlCwC;;6DAoCnBqmC,YAAY;EAChC,MAAI/mC,KAAK,CAACC,OAAN,CAAc8mC,UAAd,KAA6BA,UAAU,CAAC3yC,MAAX,GAAoB,CAArD,EAAwD;EACtD,UAAM4yC,UAAU,GAAGD,UAAU,CAAChsB,MAAX,CAAkB,CAACiU,IAAD,EAAOiY,IAAP,MAAiB,EAAE,GAAGjY,IAAL;EAAW,SAAGiY;EAAd,KAAjB,CAAlB,EAA0D,EAA1D,CAAnB;EACA,QAAIxwC,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA,QAAI+9B,MAAM,GAAG,KAAb;;EAEA,QAAIF,UAAU,CAAC9zC,cAAX,CAA0BvD,UAA1B,CAAJ,EAA2C;EACzCu3C,MAAAA,MAAM,GAAGF,UAAU,CAACr3C,UAAD,CAAnB;;EACA,UAAI,OAAOu3C,MAAP,KAAkB,SAAtB,EAAiC;EAC/B/9B,QAAAA,UAAU,CAACvZ,aAAD,CAAV,GAA4Bs3C,MAA5B,CAD+B;;EAG/BxuC,QAAAA,GAAG,CAACiC,cAAJ,GAAqB,CAACusC,MAAtB;EACD;EACF;;EACD,QAAIF,UAAU,CAAC9zC,cAAX,CAA0BpD,SAA1B,CAAJ,EAA0C;EACxC,YAAMkW,KAAK,GAAGghC,UAAU,CAACl3C,SAAD,CAAxB;EACA,YAAMq3C,WAAW,GAAI,OAAOnhC,KAAP,KAAiB,SAAlB,GAA+BA,KAA/B,GAAuC,KAA3D;EACA/P,MAAAA,cAAc,CAACsD,WAAf,CAA2BzJ,SAA3B,EAAsCq3C,WAAtC;EACD;;EACD,QAAI,CAACp0C,aAAa,CAACoW,UAAD,CAAlB,EAAgC;EAC9B1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA5K,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA,YAAMma,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACAhI,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAcpW,UAAd,EAA0Bu3C,MAAM,GAAG,MAAH,GAAY,OAA5C,CAAtB;;EACA,gEAAcl5B,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EACAqsC,MAAAA,UAAU,CAAC5pC,MAAX,CAAkB,CAAlB,EAAqB4pC,UAAU,CAAC3yC,MAAhC;EACD;EACF;EACF;;;;ECzFI,MAAMgzC,QAAN,CAAe;EAGpB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACE35C,EAAAA,WAAW,OAAqB;EAAA,QAAnB;EAAEkO,MAAAA;EAAF,KAAmB;EAAA;EAAA;EAAA;EAAA;EAC9B,SAAK3E,IAAL,GAAY,IAAZ;EACA,SAAKqwC,YAAL,GAAoB,IAApB;EACA,SAAK1zC,KAAL,GAAa,IAAb;EACA,SAAK0N,IAAL,GAAY,IAAZ;EACA,SAAKimC,UAAL,GAAkB,KAAlB;EACA,SAAKC,qBAAL,GAA6B,EAA7B;EACA,wEAAsB5rC,aAAtB;EACD;;EAED6rC,EAAAA,QAAQ,GAAI;EACV,WAAO,KAAK7zC,KAAZ;EACD;;EAED8zC,EAAAA,eAAe,GAAI;EACjB,WAAO,KAAKJ,YAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;EACE,SAAO9kB,MAAP,CAAevrB,IAAf,EAAqBqwC,YAArB,EAAmC1rC,aAAnC,EAAkD;EAChD,QAAI,CAAC3E,IAAD,IAAS,OAAOA,IAAP,KAAgB,QAA7B,EAAuC;EACrCmR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,2CAAd;EACA,aAAO,IAAP;EACD;;EACD,QAAIhI,IAAI,CAAC2hB,UAAL,CAAgB,GAAhB,KAAwB3hB,IAAI,CAACo3B,QAAL,CAAc,GAAd,CAA5B,EAAgD;EAC9CjmB,MAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAmEhI,IAAjF;EACA,aAAO,IAAP;EACD;;EAED,UAAM0wC,kBAAkB,GAAG,OAAOL,YAAlC;;EACA,QAAIK,kBAAkB,KAAK,QAAvB,IAAmCA,kBAAkB,KAAK,QAA1D,IAAsEA,kBAAkB,KAAK,SAAjG,EAA4G;EAC1Gv/B,MAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACA,aAAO,IAAP;EACD;;EAED,UAAM2oC,QAAQ,GAAGhsC,aAAa,CAACisC,WAAd,CAA0B5wC,IAA1B,CAAjB;;EACA,QAAI2wC,QAAJ,EAAc;EACZ,aAAOA,QAAP;EACD;;EAED,UAAME,WAAW,GAAG,IAAIT,QAAJ,CAAa;EAAEzrC,MAAAA;EAAF,KAAb,CAApB;;EACA,QAAI;EACFksC,MAAAA,WAAW,CAAC7wC,IAAZ,GAAmBA,IAAnB;EACA6wC,MAAAA,WAAW,CAACR,YAAZ,GAA2BA,YAA3B;EACAQ,MAAAA,WAAW,CAACl0C,KAAZ,GAAoB0zC,YAApB;EACAQ,MAAAA,WAAW,CAACxmC,IAAZ,GAAmBqmC,kBAAnB;EACA/rC,MAAAA,aAAa,CAACmsC,gBAAd,CAA+BD,WAA/B;EACAA,MAAAA,WAAW,CAACE,MAAZ,CAAmBV,YAAnB;EACD,KAPD,CAOE,OAAOroC,KAAP,EAAc;EACdmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAcA,KAAd;EACD;;EACD,WAAO6oC,WAAP;EACD;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,MAAM,CAAEC,QAAF,EAAY;EAChB,UAAMC,QAAQ,GAAG,KAAKt0C,KAAtB;EACA,SAAKA,KAAL,GAAaq0C,QAAb;;EACA,QAAIA,QAAQ,KAAK,IAAb,IAAqBC,QAAQ,KAAK,IAAtC,EAA4C;EAC1C;EACD;;EACD,QAAID,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKC,QAAlC,IAA8C,KAAKX,UAAvD,EAAmE;EACjE;EACD;;EACD,QAAI,kEAAoBY,uBAApB,EAAJ,EAAmD;EACjD,WAAKZ,UAAL,GAAkB,IAAlB;EACA,WAAKa,mBAAL;EACD;EACF;EAED;EACF;EACA;;;EACEA,EAAAA,mBAAmB,GAAI;EACrB,SAAKZ,qBAAL,CAA2B7/B,OAA3B,CAAoC0gC,cAAD,IAAoB;EACrDA,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD,KAFD;EAGD;EAED;EACF;EACA;EACA;;;EACEC,EAAAA,uBAAuB,CAAED,cAAF,EAAkB;EACvC,QAAI,CAACA,cAAL,EAAqB;EACnBjgC,MAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;EACD;;EACD,SAAKkxB,qBAAL,CAA2BprC,IAA3B,CAAgCisC,cAAhC;;EAEA,QAAI,kEAAoBF,uBAApB,EAAJ,EAAmD;EACjDE,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD;EACF;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,0BAA0B,CAAEF,cAAF,EAAkB;EAC1C,UAAM1rC,KAAK,GAAG,KAAK6qC,qBAAL,CAA2BpvC,OAA3B,CAAmCiwC,cAAnC,CAAd;;EACA,QAAI1rC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,WAAK6qC,qBAAL,CAA2BpqC,MAA3B,CAAkCT,KAAlC,EAAyC,CAAzC;EACD;EACF;EAED;EACF;EACA;;;EACE6rC,EAAAA,cAAc,GAAI;EAChB,SAAKjB,UAAL,GAAkB,KAAlB;EACD;;EAxImB;;;;;;;;;;;;;;;;;;;;;;;;ECEtB,MAAMkB,aAAN,CAAoB;EAalB/6C,EAAAA,WAAW,OAAuC;EAAA,QAArC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBqI,MAAAA,OAAnB;EAA4BugB,MAAAA;EAA5B,KAAqC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAFvB;EAEuB;EAChD,8DAAelyB,MAAf;EACA,gEAAgB2R,OAAhB;EACA,gEAAgBrI,OAAhB;EACA,wDAAc4oB,KAAd;EAEA,gEAAkB,EAAlB;EACA,4EAAwB,EAAxB;EACA,gGAAkC,EAAlC;EACA,8GAAyC,EAAzC;EAEAvtB,IAAAA,GAAG,CAACiD,aAAJ,GAAoB,IAApB;EACD;EAED;EACF;EACA;EACA;;;EACEmsC,EAAAA,gBAAgB,CAAED,WAAF,EAAe;EAC7B,UAAM;EAAE7wC,MAAAA;EAAF,QAAW6wC,WAAjB;EACA,8DAAgB7wC,IAAhB,IAAwB6wC,WAAxB;EACA1/B,IAAAA,OAAO,CAACkO,GAAR,CAAY,kBAAZ,8BAAgC,IAAhC;EACD;EAED;EACF;EACA;EACA;EACA;;;EACEuxB,EAAAA,WAAW,CAAE5wC,IAAF,EAAQ;EACjB,WAAO,0DAAgBA,IAAhB,CAAP;EACD;;EAEDkxC,EAAAA,uBAAuB,GAAI;EACzB,uCAAO,IAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEO,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,CAAC,0DAAc96C,KAAnB,EAA0B;EACxB,YAAMgI,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,UAAM8f,OAAO,GAAG;EACdtU,MAAAA,IAAI,EAAE,aADQ;EAEdgiC,MAAAA,IAAI,EAAE;EAFQ,KAAhB;;EAKA,SAAK,MAAMrsC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC2e,MAAAA,OAAO,CAAC0tB,IAAR,CAAarsC,IAAb,IAAqB;EACnBqwC,QAAAA,YAAY,EAAE,0DAAgBrwC,IAAhB,EAAsBqwC,YADjB;EAEnBhmC,QAAAA,IAAI,EAAE,0DAAgBrK,IAAhB,EAAsBqK;EAFT,OAArB;EAID,KAjB0C;;;EAoB3C,QAAI5O,MAAM,CAACgV,IAAP,CAAYkO,OAAO,CAAC0tB,IAApB,EAA0BjvC,MAA1B,KAAqC,CAAzC,EAA4C;EAC1C,YAAMyB,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,QAAI+yC,IAAI,GAAG,EAAX;EACAA,IAAAA,IAAI,GAAG,0DAAc/6B,qBAAd,CAAoC+6B,IAApC,EAA0Ch1C,SAA1C,CAAP;EACAg1C,IAAAA,IAAI,CAACC,EAAL,GAAU,0DAAch7C,KAAxB;EAEA+6C,IAAAA,IAAI,CAACvnC,IAAL,GAAY,MAAZ;EACA,UAAMga,IAAI,GAAG/kB,IAAI,CAACC,SAAL,CAAe,CAACqyC,IAAD,EAAOjzB,OAAP,CAAf,CAAb;;EACA,UAAMjU,GAAG,GAAG,0DAAczT,aAA1B;;EAEA,WAAO,0DAAcq4C,IAAd,CAAmB5kC,GAAnB,EAAwB2Z,IAAxB,EACJ6G,IADI,CACE4mB,CAAD,IAAO;EACX,UAAIJ,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACI,CAAD,CAAb;EACD;;EACD,aAAOA,CAAP;EACD,KANI,EAOJ3mB,KAPI,CAOGvrB,CAAD,IAAO;EACZ,UAAI+xC,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAAC/xC,CAAD,CAAb;EACD;;EACD,UAAIA,CAAC,CAACmyC,MAAF,KAAa,GAAjB,EAAsB;EACpB,gEAAa/pC,KAAb,CAAmB,kDAAnB;EACD,OAFD,MAEO,IAAIpI,CAAC,CAACmyC,MAAF,KAAa,GAAjB,EAAsB;EAC3B,gEAAa/pC,KAAb,CAAmB,4BAAnB;EACD,OAFM,MAEA;EACL,gEAAaA,KAAb,CAAmB,sBAAnB;EACD;;EACD,YAAMpI,CAAN;EACD,KAnBI,CAAP;EAoBD;EAED;EACF;EACA;EACA;;;EACEoyC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,sDAAY9sC,IAAZ,CAAiBvK,UAAjB,EAA6B;EAAE6M,MAAAA,CAAC,EAAE;EAAL,KAA7B;;EACA,QAAIwqC,eAAe,IAAI,OAAOA,eAAP,KAA2B,UAAlD,EAA8D;EAC5D,0EAAsBA,eAAtB;EACD;EACF;;EAED3F,EAAAA,cAAc,CAAED,IAAF,EAAQ;EACpBl7B,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4BgtB,IAA5B;EACA,4FAAgC,IAAhC;EAEAptC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC7G,SAAhC,EAA2C4xC,IAA3C;EACA,4EAAwBA,IAAxB;;EAEA,SAAK,MAAMrsC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC,UAAIqsC,IAAI,CAACnwC,cAAL,CAAoB8D,IAApB,CAAJ,EAA+B;EAC7B,kEAAgBA,IAAhB,EAAsB+wC,MAAtB,CAA6B1E,IAAI,CAACrsC,IAAD,CAAjC;EACD;EACF;;EAED,oCAAI,IAAJ,mCAAyB;EACvB;EACD;;EAED;EACD;;EAEDkyC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,gGAAgChtC,IAAhC,CAAqCgtC,QAArC;;EAEA,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT;EACF,KAND,MAMO;EACL,8DAAanqC,KAAb,CAAmB,4BAAnB;EACD;EACF;;EAEDoqC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT,OAFD,MAEO;EACL,gHAAuChtC,IAAvC,CAA4CgtC,QAA5C;EACD;EACF;EACF;;EAEDE,EAAAA,8BAA8B,CAAEF,QAAF,EAAY;EACxC,UAAMzsC,KAAK,GAAG,0FAAgCvE,OAAhC,CAAwCgxC,QAAxC,CAAd;;EACA,QAAIzsC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,gGAAgCS,MAAhC,CAAuCT,KAAvC,EAA8C,CAA9C;EACD;EACF;;EAED4sC,EAAAA,qCAAqC,CAAEH,QAAF,EAAY;EAC/C,UAAMzsC,KAAK,GAAG,wGAAuCvE,OAAvC,CAA+CgxC,QAA/C,CAAd;;EACA,QAAIzsC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,8GAAuCS,MAAvC,CAA8CT,KAA9C,EAAqD,CAArD;EACD;EACF;;EAlLiB;;+EAoLc;EAC9B,OAAK,IAAIysC,QAAT,gCAAqB,IAArB,2DAAsD;EACpDA,IAAAA,QAAQ;EACT;;EACD,OAAK,IAAII,QAAT,gCAAqB,IAArB,yEAA6D;EAC3DA,IAAAA,QAAQ;EACT;;EACD,0GAAuCn1C,MAAvC,GAAgD,CAAhD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC9IY,MAAMo1C,SAAN,CAAgB;EAgB7B,MAAIC,GAAJ,GAAW;EACT,uCAAO,IAAP;EACD;;EAED,MAAIA,GAAJ,CAAS91C,KAAT,EAAgB;EACd,UAAM+1C,KAAK,GAAG/1C,KAAK,KAAK,IAAxB;;EACA,QAAI,sDAAgB+1C,KAAhB,IAAyB,oEAAuB,CAApD,EAAuD;EACrD;EACA,UAAIA,KAAJ,EAAW;EACTvyC,QAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EACD,OAFD,MAEO;EACLva,QAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;EACF;;EACD,wDAAcuvB,KAAd;EACD;;EAED,MAAIluC,kBAAJ,GAA0B;EACxB,uCAAO,IAAP;EACD;;EAED,MAAIA,kBAAJ,CAAwB7H,KAAxB,EAA+B;EAC7B,UAAM6H,kBAAkB,GAAG7H,KAAK,KAAK,IAArC;EACA,kFAA2B6H,kBAA3B;EACA9C,IAAAA,GAAG,CAAC8C,kBAAJ,GAAyBA,kBAAzB;EACD;;EAED/N,EAAAA,WAAW,GAAkB;EAAA;;EAAA,QAAhB2Y,SAAgB,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAhCJ,wEAAuBujC,IAAvB,CAA4B,IAA5B;EAgCI;EAAA;EAAA;EAAA;EAAA;EAAA,SA9B7BC,qBA8B6B;EAAA;EAAA;EAAA;EAAA;EAAA,SAqwB7B9I,cArwB6B,GAqwBZ,EArwBY;EAAA,SAswB7BT,kBAtwB6B,GAswBR,EAtwBQ;EAC3B,sEAAqB,CAArB;EACA,SAAKwJ,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BF,IAA9B,CAAmC,IAAnC,CAAhC;;EACA,SAAKvkB,wBAAL,GAAgC,MAAM,EAAtC;;EACA,8DAAe,IAAIqf,MAAJ,CAAWN,SAAS,CAACG,IAArB,CAAf;EACA,gEAAgB,IAAI92C,OAAJ,uBAAY4Y,SAAS,CAACV,OAAtB,uDAAY,mBAAoB,CAApB,CAAZ,EAAoCU,SAAS,CAACzY,MAAV,4BAAoByY,SAAS,CAACV,OAA9B,wDAAoB,oBAAoB,CAApB,CAApB,CAApC,EAAgFU,SAAS,CAACxY,YAAV,4BAA0BwY,SAAS,CAACV,OAApC,wDAA0B,oBAAoB,CAApB,CAA1B,CAAhF,EAAkIU,SAAS,CAACvY,KAAV,4BAAmBuY,SAAS,CAACV,OAA7B,wDAAmB,oBAAoB,CAApB,CAAnB,CAAlI,CAAhB;EACA,8DAAe,IAAI7G,aAAJ,CAAkB;EAAE9K,MAAAA,MAAM,8BAAE,IAAF;EAAR,KAAlB,CAAf;EACA,kFAA2BqS,SAAS,CAAC5K,kBAAV,IAAgC,KAA3D;EACA,SAAKsuC,cAAL,GAAsB1jC,SAAS,CAAC0jC,cAAV,IAA4B,EAAlD;EACA,gEAAgB,IAAI9E,cAAJ,CAAmB;EACjCjxC,MAAAA,MAAM,8BAAE,IAAF,uBAD2B;EAEjCyM,MAAAA,uBAAuB,EAAE,KAAKqpC;EAFG,KAAnB,CAAhB;EAIA,gEAAgB,IAAIE,cAAJ,CAAkB;EAChCh2C,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhC2R,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCpI,MAAAA,MAAM,8BAAE,IAAF,uBAH0B;EAIhCC,MAAAA,OAAO,8BAAE,IAAF,yBAJyB;EAKhCiD,MAAAA,uBAAuB,EAAE,KAAKqpC;EALE,KAAlB,CAAhB;EAOA,SAAKD,qBAAL,GAA6BxjC,SAAS,CAACwjC,qBAAV,IAAmC,KAAhE;EACA,SAAK3jB,KAAL,GAAa,IAAI3lB,YAAJ,CAAiB;EAC5BvM,MAAAA,MAAM,8BAAE,IAAF,uBADsB;EAE5BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFqB;EAG5BmD,MAAAA,uBAAuB,EAAE,KAAKqpC;EAHF,KAAjB,EAIVzjC,SAAS,CAAC6f,KAJA,CAAb;EAMA,SAAKrY,OAAL,GAAe,IAAIP,cAAJ,CAAmB;EAChCtZ,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCqI,MAAAA,OAAO,8BAAE,IAAF,yBAHyB;EAIhClF,MAAAA,uBAAuB,EAAE,KAAKqpC;EAJE,KAAnB,EAKZzjC,SAAS,CAACwH,OALE,CAAf;EAOA,SAAKo8B,WAAL,GAAmB,IAAI36B,gBAAJ,CAAqB;EACtChS,MAAAA,OAAO,8BAAE,IAAF,yBAD+B;EAEtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCnI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItCxJ,MAAAA,MAAM,8BAAE,IAAF,uBAJgC;EAKtCuJ,MAAAA,MAAM,8BAAE,IAAF;EALgC,KAArB,EAMhB8I,SAAS,CAAC4jC,WANM,CAAnB;EAQA,SAAKC,OAAL,GAAe,IAAInD,OAAJ,CAAY;EACzBzpC,MAAAA,OAAO,8BAAE,IAAF,yBADkB;EAEzBqI,MAAAA,OAAO,8BAAE,IAAF,yBAFkB;EAGzB3R,MAAAA,MAAM,8BAAE,IAAF;EAHmB,KAAZ,EAIZqS,SAAS,CAAC6jC,OAJE,CAAf;EAMA,SAAK7Y,aAAL,GAAqB,IAAIwB,mBAAJ,CAAwB;EAC3C7+B,MAAAA,MAAM,8BAAE,IAAF,uBADqC;EAE3CsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoC;EAG3CqI,MAAAA,OAAO,8BAAE,IAAF;EAHoC,KAAxB,EAIlBU,SAAS,CAACgrB,aAJQ,CAArB;EAMA,4EAAsB,IAAIoX,aAAJ,CAAkB;EACtCz0C,MAAAA,MAAM,8BAAE,IAAF,uBADgC;EAEtCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItCugB,MAAAA,KAAK,EAAE,KAAKA;EAJ0B,KAAlB,CAAtB;EAOA,oDAAY,IAAI7oB,YAAJ,CAAiB;EAC3BrJ,MAAAA,MAAM,8BAAE,IAAF,uBADqB;EAE3BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoB;EAG3BC,MAAAA,MAAM,8BAAE,IAAF,uBAHqB;EAI3BC,MAAAA,OAAO,8BAAE,IAAF;EAJoB,KAAjB,CAAZ;EAOA,SAAKksC,GAAL,GAAWrjC,SAAS,CAACqjC,GAArB;EACA,SAAKjuC,kBAAL,GAA0B4K,SAAS,CAAC5K,kBAApC;EAEA,SAAKkO,IAAL,GAAY,IAAIo6B,IAAJ,CAAS;EACnBtjC,MAAAA,uBAAuB,EAAE,KAAKqpC;EADX,KAAT,CAAZ;EAIA,SAAKtsC,OAAL,GAAe;EACb8nC,MAAAA,cAAc,EAAE,MAAM;EACpB,eAAO,0DAAcA,cAAd,EAAP;EACD,OAHY;EAIbE,MAAAA,YAAY,EAAE,MAAM;EAClB,eAAO,0DAAcA,YAAd,EAAP;EACD;EANY,KAAf;;EASA,SAAK2E,MAAL,GAAc,MAAM;EAClB,8DAAajwC,KAAb,CAAmB,eAAnB;;EACAhE,MAAAA,cAAc,CAACyD,uBAAf;EACD,KAHD;;EAKA,SAAK4V,KAAL,GAAa,MAAM;EACjB,WAAK06B,WAAL,CAAiB16B,KAAjB;EACD,KAFD;;EAIA,SAAK66B,cAAL,GAAsB,MAAM;EAC1B,aAAO,wDAAarrC,OAAb,EAAP;EACD,KAFD;;EAIA,SAAKsrC,YAAL,GAAoB,MAAM;EACxB,aAAO,0DAAc18C,EAArB;EACD,KAFD;;EAIA,SAAK28C,WAAL,GAAmB,MAAM;EACvB,aAAO,0DAAcr8C,iBAArB;EACD,KAFD;;EAIA,SAAKs8C,UAAL,GAAkB,CAACC,OAAD,EAAUC,UAAV,KAAyB;EACzC9xC,MAAAA,GAAG,CAACgD,cAAJ,GAAqB;EAAE,SAAC6uC,OAAD,GAAWC;EAAb,OAArB;EACD,KAFD,CAzG2B;;;EA8G3B,SAAKC,eAAL,GAAwBC,GAAD,IAAS;EAC9B,gEAAcC,YAAd,GAA6BD,GAA7B;EACA,YAAMj0C,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAACsvC,EAAL,GAAU;EAAE6E,QAAAA,GAAG,EAAE,aAAa,0DAAcD;EAAlC,OAAV;;EACA,UAAI5kC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EACA,gEAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD,KARD;;EAUA,QAAIypB,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EAChCI,MAAAA,kBAAkB,6BAAC,IAAD,wBAAlB;EACD,KA3H0B;;;EA8H3B,SAAK6pB,oBAAL,GAA4B,MAAM;EAChC,YAAM1xB,QAAQ,GAAGwB,gBAAgB,EAAjC;EACA,aAAOloB,MAAM,CAACgV,IAAP,CAAY0R,QAAZ,EAAsB/kB,MAA7B;EACD,KAHD,CA9H2B;;;EAoI3B,SAAK02C,0BAAL,GAAkC,MAAM;EACtC,UAAI;EACF,cAAMC,cAAc,GAAG,KAAKC,sBAAL,EAAvB;EACA,cAAMC,MAAM,GAAGx4C,MAAM,CAACgV,IAAP,CAAYsjC,cAAZ,EAA4B32C,MAA3C;EACA,eAAO62C,MAAP;EACD,OAJD,CAIE,OAAOr0C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,wCAAwCpI,CAA3D;EACD;EACF,KARD,CApI2B;;;EA+I3B,SAAKs0C,mBAAL,GAA2B,MAAM;EAC/B,aAAOvwB,gBAAgB,EAAvB;EACD,KAFD,CA/I2B;;;EAoJ3B,SAAKqwB,sBAAL,GAA8B,MAAM;EAClC,UAAI;EACF,cAAMzwB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,cAAMswB,MAAM,GAAG,EAAf;;EAEA,YAAIx4C,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAAnC,EAAsC;EACpC,eAAK,MAAM+e,OAAX,IAAsBoH,QAAtB,EAAgC;EAC9B,gBAAIA,QAAQ,CAACpH,OAAD,CAAR,CAAkBY,MAAlB,KAA6B,CAAjC,EAAoC;EAClCk3B,cAAAA,MAAM,CAAC93B,OAAD,CAAN,GAAkBoH,QAAQ,CAACpH,OAAD,CAA1B;EACD;EACF;EACF;;EACD,eAAO83B,MAAP;EACD,OAZD,CAYE,OAAOr0C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,oCAAoCpI,CAAvD;EACD;EACF,KAhBD,CApJ2B;;;EAuK3B,SAAKu0C,oBAAL,GAA6BC,SAAD,IAAe;EACzC,YAAM7wB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAACywB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C7wB,QAAQ,CAACrnB,cAAT,CAAwBk4C,SAAxB,CAAhD,EAAoF;EAClF,eAAO7wB,QAAQ,CAAC6wB,SAAD,CAAf;EACD,OAFD,MAEO;EACL,gEAAapsC,KAAb,CAAmB,yCAAyCosC,SAA5D;EACD;EACF,KAPD,CAvK2B;EAiL3B;EACA;;;EACA,SAAKC,kBAAL,GAA2BD,SAAD,IAAe;EACvC,YAAM7wB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAACywB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C7wB,QAAQ,CAACrnB,cAAT,CAAwBk4C,SAAxB,CAAhD,EAAoF;EAClF,YAAI7wB,QAAQ,CAAC6wB,SAAD,CAAR,CAAoBr3B,MAApB,KAA+B,CAAnC,EAAsC;EACpCrb,UAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,iBAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2BqzB,SAA3B,CAAP;EACA,gBAAME,aAAa,GAAGn0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,cAAIk/B,aAAJ,EAAmB;EACjBA,YAAAA,aAAa,CAAC72B,SAAd,GAA0B/b,GAAG,CAAC0C,KAAJ,CAAU4c,eAApC;EACAszB,YAAAA,aAAa,CAACt5B,KAAd,CAAoBZ,OAApB,GAA8B1Y,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B,GAAgC,MAAhC,GAAyC,MAAvE;EACD;EACF;;EACD,cAAMuzB,OAAO,GAAGp0C,QAAQ,CAAC0xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI0iB,OAAJ,EAAa;EACX,gBAAM1wB,EAAE,GAAG0wB,OAAO,CAAC/5B,UAAR,CAAmBpF,cAAnB,CAAkCg/B,SAAlC,CAAX;EACAvwB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;EACD;;EACD,eAAO0jB,QAAQ,CAAC6wB,SAAD,CAAf;EACAnwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAjBD,MAiBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyCosC,SAA5D;EACD;EACF,KAtBD;EAwBA;EACJ;EACA;EACA;;;EACI,SAAKI,oBAAL,GAA6BJ,SAAD,IAAe;EACzC,YAAM7wB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAACywB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C7wB,QAAQ,CAACrnB,cAAT,CAAwBk4C,SAAxB,CAAhD,EAAoF;EAClF,YAAI7wB,QAAQ,CAAC6wB,SAAD,CAAR,CAAoBr3B,MAApB,KAA+B,CAAnC,EAAsC;EACpC,iBAAO,wDAAa/U,KAAb,CAAmB,2BAA2BosC,SAA9C,CAAP;EACD;;EACD,cAAMG,OAAO,GAAGp0C,QAAQ,CAAC0xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI0iB,OAAJ,EAAa;EACX,gBAAM1wB,EAAE,GAAG0wB,OAAO,CAAC/5B,UAAR,CAAmBpF,cAAnB,CAAkCg/B,SAAlC,CAAX;;EACA,cAAIvwB,EAAE,KAAK,IAAX,EAAiB;EACfA,YAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,QAAAA,QAAQ,CAAC6wB,SAAD,CAAR,CAAoBr3B,MAApB,GAA6B,CAA7B;EACA,cAAMu3B,aAAa,GAAGn0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIk/B,aAAJ,EAAmB;EACjB,cAAI9tB,OAAO,GAAGsM,QAAQ,CAACwhB,aAAa,CAAC72B,SAAf,CAAR,GAAoC,CAAlD;EACA62B,UAAAA,aAAa,CAAC72B,SAAd,GAA0B+I,OAA1B;EACA8tB,UAAAA,aAAa,CAACt5B,KAAd,CAAoBZ,OAApB,GAA8BoM,OAAO,GAAG,CAAV,GAAc,MAAd,GAAuB,MAArD;EACD;;EACDnlB,QAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,UAAAA,KAAK,EAAEwJ,QAAQ,CAAC6wB,SAAD,CAAR,CAAoBp6B,OAA7B;EAAsCC,UAAAA,OAAO,EAAEsJ,QAAQ,CAAC6wB,SAAD,CAAR,CAAoBn6B;EAAnE,SAA1C;EACAvY,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,eAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2BqzB,SAA3B,CAAP;EACAnwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAtBD,MAsBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyCosC,SAA5D;EACD;EACF,KA3BD;EA6BA;;;EACA,SAAKK,2BAAL,GAAoCC,UAAD,IAAgB;EACjD,UAAI1rC,KAAK,CAACC,OAAN,CAAcyrC,UAAd,CAAJ,EAA+B;EAC7B,aAAK,IAAIh+C,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGg+C,UAAU,CAACt3C,MAAjC,EAAyC1G,EAAE,EAA3C,EAA+C;EAC7C,eAAK89C,oBAAL,CAA0BE,UAAU,CAACh+C,EAAD,CAApC;EACD;EACF;EACF,KAND;EAQA;EACJ;EACA;EACA;;;EACI,SAAKi+C,uBAAL,GAA+B,MAAM;EACnC,YAAMpxB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,YAAMixB,SAAS,GAAG,KAAKZ,sBAAL,EAAlB;;EACA,UAAIv4C,MAAM,CAACgV,IAAP,CAAYmkC,SAAZ,EAAuBx3C,MAAvB,GAAgC,CAApC,EAAuC;EACrC,cAAMqmB,MAAM,GAAGhoB,MAAM,CAACgV,IAAP,CAAYmkC,SAAZ,CAAf;EACAnxB,QAAAA,MAAM,CAAC/S,OAAP,CAAe1T,GAAG,IAAI;EACpB,gBAAMu3C,OAAO,GAAGp0C,QAAQ,CAAC0xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,cAAI0iB,OAAJ,EAAa;EACX,kBAAM1wB,EAAE,GAAG0wB,OAAO,CAAC/5B,UAAR,CAAmBpF,cAAnB,CAAkCpY,GAAlC,CAAX;;EACA,gBAAI6mB,EAAE,KAAK,IAAX,EAAiB;EACfA,cAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,UAAAA,QAAQ,CAACvmB,GAAD,CAAR,CAAc+f,MAAd,GAAuB,CAAvB;EACA1b,UAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,YAAAA,KAAK,EAAEwJ,QAAQ,CAACvmB,GAAD,CAAR,CAAcgd,OAAvB;EAAgCC,YAAAA,OAAO,EAAEsJ,QAAQ,CAACvmB,GAAD,CAAR,CAAckd;EAAvD,WAA1C;EACD,SAVD;EAWA,cAAMo6B,aAAa,GAAGn0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIk/B,aAAJ,EAAmB;EACjBA,UAAAA,aAAa,CAAC72B,SAAd,GAA0B,CAA1B;EACA62B,UAAAA,aAAa,CAACt5B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACD6J,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA7hB,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B;EACAtf,QAAAA,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,GAA6B,EAA7B;EACD,OArBD,MAqBO;EACL,gEAAa9d,KAAb,CAAmB,+BAAnB;EACD;EACF,KA3BD;;EA6BA,SAAKye,WAAL,GAAoB9hB,CAAD;EAAA;;EAAA,2BAAO8B,GAAG,CAAC0C,KAAX,+CAAO,WAAWsd,WAAX,CAAuB9hB,CAAvB,CAAP;EAAA,KAAnB,CAtR2B;;;EAyR3B,SAAKqb,wBAAL,GAAiCmY,MAAD,IAAY;EAC1CyhB,MAAAA,wBAAwB,CAACj7C,mBAAD,EAAsBw5B,MAAtB,CAAxB;EACD,KAFD,CAzR2B;;;EA8R3B,SAAKhY,yBAAL,GAAkCgY,MAAD,IAAY;EAC3CyhB,MAAAA,wBAAwB,CAACh7C,oBAAD,EAAuBu5B,MAAvB,CAAxB;EACD,KAFD;;EAIA,UAAMyhB,wBAAwB,GAAG,CAAC3qC,SAAD,EAAY4qC,WAAZ,KAA4B;EAC3D,UAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAAC/6B,KAAjC,EAAwC;EAAE;EAAQ;;EAClD,YAAMta,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAeM,SAAf;EACAzK,MAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,SAAC5Q,OAAD,GAAWm7C,WAAW,CAAC/6B;EAAzB,OAAf;;EAEA,UAAI+6B,WAAW,CAAC76B,OAAhB,EAAyB;EACvBxa,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,UAAAA,UAAU,EAAE46B,WAAW,CAAC76B;EAA3C,SAAf;EACD;;EAED,UAAI66B,WAAW,CAACvd,YAAhB,EAA8B;EAC5B93B,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmBgtB,UAAAA,YAAY,EAAEud,WAAW,CAACvd;EAA7C,SAAf;EACD,OAb0D;;;EAgB3D,UAAIud,WAAW,CAACj2B,EAAZ,IAAkBi2B,WAAW,CAACj2B,EAAZ,KAAmB,IAArC,IAA6Ci2B,WAAW,CAACj2B,EAAZ,KAAmBjiB,SAApE,EAA+E;EAC7E,aAAK,MAAMI,GAAX,IAAkB83C,WAAW,CAACj2B,EAA9B,EAAkC;EAChC,cAAI7hB,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAO83C,WAAW,CAACj2B,EAAZ,CAAe7hB,GAAf;EAA1B,aAAf;EACD;EACF;EACF,OAtB0D;;;EAyB3D,UAAI83C,WAAW,CAAC1jB,OAAZ,IAAuB0jB,WAAW,CAAC1jB,OAAZ,KAAwB,IAA/C,IAAuD0jB,WAAW,CAAC1jB,OAAZ,KAAwBx0B,SAAnF,EAA8F;EAC5F,aAAK,MAAMI,GAAX,IAAkB83C,WAAW,CAAC1jB,OAA9B,EAAuC;EACrC,cAAIp0B,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAO83C,WAAW,CAAC1jB,OAAZ,CAAoBp0B,GAApB;EAA1B,aAAf;EACD;EACF;EACF;;EACD,gEAAcwN,YAAd,CAA2B/K,IAA3B;EACD,KAjCD;;EAmCA,SAAKs1C,WAAL,GAAoBC,CAAD,IAAO;EACxB,8DAAatH,QAAb,GAAwBuH,MAAM,CAACD,CAAD,CAA9B;;EACA,UAAIA,CAAC,KAAK,CAAV,EAAa;EACX1Q,QAAAA,cAAc,CAACyJ,MAAf,GAAwB,EAAxB;EACD,OAFD,MAEO;EACL,eAAOzJ,cAAc,CAACyJ,MAAtB;EACD;EACF,KAPD;EAQA;EACJ;EACA;EACA;;;EACI,SAAKmH,oBAAL,GAA4B,CAACl4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD3C,iBAAxD;EACD,KAFD;;EAIA,SAAKm7C,oBAAL,GAA4B,CAACn4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD1C,iBAAxD;EACD,KAFD;;EAIA,SAAKm7C,oBAAL,GAA4B,CAACp4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaK,oBAAb,CAAkCja,GAAlC,EAAuCL,KAAvC,EAA8CzC,WAA9C;EACD,OAFD,MAEO;EACLiX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kEAAd;EACD;EACF,KAND;;EAQA,SAAKqtC,mBAAL,GAA2B,CAACr4C,GAAD,EAAML,KAAN,KAAgB;EACzC,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,6EAAd;EACD;EACF,KAND;;EAQA,SAAKstC,oBAAL,GAA4B,CAACt4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAd;EACD;EACF,KAND;;EAQA,SAAKutC,sBAAL,GAA8B,CAACv4C,GAAD,EAAML,KAAN,KAAgB;EAC5C,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,gFAAd;EACD;EACF,KAND;;EAQA,SAAKwtC,uBAAL,GAA+B,CAACx4C,GAAD,EAAML,KAAN,KAAgB;EAC7C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACD;EACF,KAND;;EAQA,SAAKytC,iBAAL,GAA0Bz4C,GAAD,IAAS;EAChC,WAAK4Z,OAAL,CAAakB,uBAAb,CAAqC9a,GAArC,EAA0C3C,cAA1C;EACD,KAFD;;EAIA,UAAMq7C,wBAAwB,GAAG,CAAC9/B,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,KAA0C;EACzEH,MAAAA,uBAAuB,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,8BAAuC,IAAvC,uDAAsD,IAAtD,wBAAvB;EACD,KAFD;EAIA;EACJ;EACA;EACA;EACA;EACA;EACA;;;EACI,SAAK6/B,WAAL,GAAmB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;EACrC;EACA,UAAKD,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAvB,IAAqCC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAA/D,EAA0E;EACxE1kC,QAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD;;EACD,UAAIu2B,GAAG,IAAIC,GAAX,EAAgB;EACd;EACA,YAAID,GAAG,IAAI,CAAC,EAAR,IAAcA,GAAG,GAAG,EAAxB,EAA4B;EAC1BzkC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD,SALa;;;EAOd,YAAIw2B,GAAG,IAAI,CAAC,GAAR,IAAeA,GAAG,GAAG,GAAzB,EAA8B;EAC5B1kC,UAAAA,OAAO,CAACkO,GAAR,CAAY,mDAAZ;EACA;EACD;;EACD3d,QAAAA,GAAG,CAACF,QAAJ,GAAe;EAAEs0C,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAf;;EACA,gFAAuB;EAAEC,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAvB;EACD,OAbD,MAaO;EACL,YAAI52B,SAAS,CAAC+2B,WAAd,EAA2B;EACzB/2B,UAAAA,SAAS,CAAC+2B,WAAV,CAAsBC,kBAAtB,CAAyCC,YAAY,CAACvD,IAAb,CAAkB,IAAlB,CAAzC,EAAkEwD,SAAlE;EACD,SAFD,MAEO;EACLhlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACD;EACF;EACF,KA1BD;;EA4BA,aAAS62B,YAAT,CAAuBjmB,QAAvB,EAAiC;EAC/B,UAAI2lB,GAAG,GAAG3lB,QAAQ,CAACmmB,MAAT,CAAgBC,QAA1B;EACA,UAAIR,GAAG,GAAG5lB,QAAQ,CAACmmB,MAAT,CAAgBE,SAA1B;EACA50C,MAAAA,GAAG,CAACF,QAAJ,GAAe;EAAEs0C,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAf;;EACA,8EAAuB;EAAEC,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAvB;EACD;;EAED,aAASM,SAAT,CAAoBnuC,KAApB,EAA2B;EACzB,cAAQA,KAAK,CAAC6lC,IAAd;EACE,aAAK7lC,KAAK,CAACuuC,iBAAX;EACEplC,UAAAA,OAAO,CAACkO,GAAR,CAAY,0CAAZ;EACA;;EACF,aAAKrX,KAAK,CAACwuC,oBAAX;EACErlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;;EACF,aAAKrX,KAAK,CAACyuC,OAAX;EACEtlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,6CAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC0uC,aAAX;EACEvlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,4BAAZ;EACA;EAZJ;EAcD;;EAED,UAAMs3B,GAAG,+BAAG,IAAH,aAAT;;EACAA,IAAAA,GAAG,CAACzD,MAAJ,GAAa,KAAKA,MAAlB;EACAyD,IAAAA,GAAG,CAACr+B,KAAJ,GAAY,KAAKA,KAAjB;;EACAq+B,IAAAA,GAAG,CAAC3hC,WAAJ,GAAkB,CAAC9D,UAAD,EAAa+D,YAAb,KAA8B;EAC9CD,MAAAA,WAAW,CAAC9D,UAAD,EAAa+D,YAAb,EAA2B,0DAAcoF,SAAzC,CAAX;EACD,KAFD;;EAGAs8B,IAAAA,GAAG,CAACC,aAAJ,GAAoB,CAACna,OAAD,EAAUF,oBAAV,KAAmC;EACrDuG,MAAAA,YAAY,CAACvG,oBAAD,CAAZ;;EACA,WAAKnC,aAAL,CAAmBoC,cAAnB,CAAkCC,OAAlC,EAA2CF,oBAA3C;EACD,KAHD;;EAIAoa,IAAAA,GAAG,CAACE,EAAJ,GAAUn6B,GAAD,IAAS;EAChBonB,MAAAA,GAAG,CAACpnB,GAAD,EAAM;EACPpW,QAAAA,MAAM,8BAAE,IAAF,uBADC;EAEPC,QAAAA,OAAO,8BAAE,IAAF,yBAFA;EAGPF,QAAAA,OAAO,8BAAE,IAAF,yBAHA;EAIPtJ,QAAAA,MAAM,8BAAE,IAAF;EAJC,OAAN,CAAH;EAMD,KAPD;;EAQA45C,IAAAA,GAAG,CAAClhC,OAAJ,GAAeC,OAAD,IAAa;EACzBD,MAAAA,OAAO,CAACC,OAAD,8BAAU,IAAV,wBAAP;EACD,KAFD;;EAGAihC,IAAAA,GAAG,CAACG,eAAJ,GAAsB,MAAM;EAC1B,aAAQ,oEAAuB,CAA/B;EACD,KAFD;;EAGAH,IAAAA,GAAG,CAACI,QAAJ,GAAgBlhC,SAAD,IAAe;EAC5B6/B,MAAAA,wBAAwB,CAAC,GAAD,EAAM7/B,SAAN,CAAxB;EACD,KAFD;;EAGA8gC,IAAAA,GAAG,CAACK,QAAJ,GAAe,CAACnhC,SAAD,EAAYohC,UAAZ,KAA2B;EACxCvB,MAAAA,wBAAwB,CAAC,IAAD,EAAO7/B,SAAP,EAAkBohC,UAAlB,CAAxB;EACD,KAFD;;EAGAN,IAAAA,GAAG,CAACO,UAAJ,GAAkBrhC,SAAD,IAAe;EAC9B6/B,MAAAA,wBAAwB,CAAC,GAAD,EAAM7/B,SAAN,CAAxB;EACD,KAFD;;EAGA8gC,IAAAA,GAAG,CAACQ,gBAAJ,GAAwBthC,SAAD,IAAe;EACpCnU,MAAAA,GAAG,CAACwC,WAAJ,GAAkB,EAAlB;EACA,YAAMuwB,QAAQ,GAAGt0B,QAAQ,CAACqP,sBAAT,CAAgC,2BAAhC,CAAjB;;EAEA,WAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwoB,QAAQ,CAACr3B,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,cAAM0hB,OAAO,GAAG8G,QAAQ,CAACxoB,CAAD,CAAxB;;EACA,YAAI0hB,OAAO,CAAC3tB,IAAZ,EAAkB;EAChB,gBAAMP,IAAI,GAAG;EAAEO,YAAAA,IAAI,EAAE2tB,OAAO,CAAC3tB,IAAhB;EAAsBo3C,YAAAA,cAAc,EAAEzpB,OAAO,CAAC0pB;EAA9C,WAAb;EACA31C,UAAAA,GAAG,CAACwC,WAAJ,CAAgBiB,IAAhB,CAAqB1F,IAArB;EACD;EACF;;EAEDi2C,MAAAA,wBAAwB,CAACl8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAbD;;EAcA8gC,IAAAA,GAAG,CAACW,qBAAJ,GAA6B36C,KAAD,IAAW;EACrC+E,MAAAA,GAAG,CAACwC,WAAJ,GAAkBvH,KAAlB;EACD,KAFD;;EAGAg6C,IAAAA,GAAG,CAACY,qBAAJ,GAA4B,MAAM;EAChC,aAAO71C,GAAG,CAACwC,WAAX;EACD,KAFD;;EAGAyyC,IAAAA,GAAG,CAACa,wBAAJ,GAA+B,CAAC3hC,SAAD,EAAY4hC,aAAZ,KAA8B;EAC3Dd,MAAAA,GAAG,CAACW,qBAAJ,CAA0BG,aAA1B;;EACA/B,MAAAA,wBAAwB,CAACl8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAHD;;EAIA8gC,IAAAA,GAAG,CAACe,mBAAJ,GAA0B,MAAM;EAC9B,aAAOh2C,GAAG,CAAC+C,iBAAX;EACD,KAFD;;EAGAkyC,IAAAA,GAAG,CAACgB,sBAAJ,GAA8Bh7C,KAAD,IAAW;EACtC+E,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB9H,KAAxB;EACD,KAFD;;EAGAg6C,IAAAA,GAAG,CAACiB,sBAAJ,GAA8BhhC,OAAD,IAAa;EACxC,UAAIA,OAAO,CAACnd,eAAD,CAAX,EAA8B;EAC5BiI,QAAAA,GAAG,CAACyC,mBAAJ,GAA0ByS,OAAO,CAACnd,eAAD,CAAjC;EACD;EACF,KAJD;;EAKA4H,IAAAA,MAAM,CAACw2C,QAAP,GAAkBx2C,MAAM,CAACy2C,QAAP,GAAkBnB,GAApC;;EAEA,+BAAIvnC,SAAS,CAACV,OAAd,wDAAI,oBAAoB,CAApB,EAAuBhY,EAA3B,EAA+B;EAAA;;EAC7B;EACA;EACA;EACAuI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,yBAA4C+W,SAAS,CAACV,OAAtD,wDAA4C,oBAAoB,CAApB,EAAuBhY,EAAnE;EACA,WAAKosB,IAAL;EACD;EACF,GA5jB4B;;;EA+jB7BA,EAAAA,IAAI,CAAEhsB,SAAF,EAAaH,MAAb,EAAqBC,YAArB,EAAmCC,KAAnC,EAA4D;EAAA,QAAlB68B,WAAkB,uEAAJ,EAAI;;EAC9D,QAAIj4B,MAAM,CAACgV,IAAP,CAAYijB,WAAZ,EAAyBt2B,MAAzB,GAAkC,CAAtC,EAAyC;EACvCq2B,MAAAA,cAAc,CAACC,WAAD,CAAd;EACD;;EACD,QAAI,oEAAuB,CAA3B,EAA8B;EAC5B;EACA;EACD;;EAEDz0B,IAAAA,cAAc,CAACc,YAAf,CAA4B,QAA5B,EAAsCsB,MAAM,CAACG,QAAP,CAAgBC,QAAtD;;EACA,QAAI,CAAC,0DAAc/K,EAAnB,EAAuB;EACrB,UAAI,CAACI,SAAL,EAAgB;EACd,gEAAakR,KAAb,CAAmBG,WAAnB;;EACA;EACD;;EACD,gEAAczR,EAAd,GAAmBI,SAAnB;EACAmI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,EAA4CvB,SAA5C;;EACA,8DAAamM,KAAb,CAAmB,qCAAqC,0DAAcvM,EAAtE;EACD;;EACDg4B,IAAAA,YAAY,6BAAC,IAAD,yBAAe,0DAAch4B,EAA7B,CAAZ;EACA,8DAAcqiB,UAAd,GAA2B/gB,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAAhE;;EAEA,QAAIC,MAAJ,EAAY;EACV,gEAAcA,MAAd,GAAuBA,MAAvB;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,gEAAcA,YAAd,GAA6BA,YAA7B;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,gEAAcA,KAAd,GAAsBA,KAAtB;EACD;;EAED,UAAMkhD,YAAY,GAAGv2C,QAAQ,CAAC6J,IAA9B;EACA,UAAMV,SAAS,GAAGF,YAAY,CAACstC,YAAY,CAAC3gC,WAAb,EAAD,CAA9B,CAjC8D;;EAoC9D,QAAI,OAAOzM,SAAS,CAAC/K,CAAjB,KAAuB,WAAvB,IAAsC+K,SAAS,CAACqtC,OAAV,IAAqB,GAA/D,EAAoE;EAClE;EACD;;EAEDt2C,IAAAA,GAAG,CAAC2C,kBAAJ,GAAyB,IAAzB;;EACA,QAAI3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,WAAK61C,OAAL,CAAa9tC,IAAb,CAAkBzD,GAAG,CAAC4C,YAAtB;EACD;;EAED;;EACA,SAAK2zC,WAAL;EACA,UAAMC,cAAc,GAAGxtB,WAAW,CAAC,MAAM;EACvC,UAAI,wDAAarnB,OAAjB,EAA0B;EACxBsnB,QAAAA,aAAa,CAACutB,cAAD,CAAb;;EACA,kEAActwC,mBAAd;EACD;EACF,KALiC,EAK/B,IAL+B,CAAlC;;EAMA,oCAAI,IAAJ,mBAAiB;EACf;EACAzH,MAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EAEA;;EACArZ,MAAAA,MAAM,CAACqZ,gBAAP,CAAwB,UAAxB,8BAAoC,IAApC;EACD,KAND,MAMO;EACL;EACAva,MAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;;EACD,sEAAqB,CAArB;EACD,GA/nB4B;EAkoB7B;;;EAmEA80B,EAAAA,WAAW,GAAI;EACb,UAAMF,YAAY,GAAG12C,MAAM,CAACG,QAAP,CAAgB6J,IAArC;EACA,UAAMV,SAAS,GAAGF,YAAY,CAACstC,YAAY,CAAC3gC,WAAb,EAAD,CAA9B,CAFa;;EAIb,UAAMpb,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACA,QAAIixC,OAAO,GAAI,OAAOn8C,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAvD;EACAla,IAAAA,GAAG,CAACka,CAAJ,GAAQ,EAAEiiC,OAAV;;EACA,8DAAczwC,sBAAd,CAAqC1L,GAArC,EAPa;;;EAUb,QAAIyD,IAAI,GAAG,EAAX;EACA,QAAI24C,cAAc,GAAGltC,SAAS,CAAC/K,QAAQ,CAACk4C,QAAV,CAA9B;;EAEA,QAAIh3C,MAAM,CAACG,QAAP,CAAgBC,QAAhB,KAA6B22C,cAAjC,EAAiD;EAC/C,YAAME,MAAM,GAAG,GAAf;;EACA,UAAIF,cAAc,KAAK,EAAvB,EAA2B;EACzBA,QAAAA,cAAc,GAAGA,cAAc,CAACh7C,MAAf,GAAwBk7C,MAAxB,GAAiCF,cAAc,CAAC/6C,SAAf,CAAyB,CAAzB,EAA4Bi7C,MAA5B,CAAjC,GAAuEF,cAAxF;EACA34C,QAAAA,IAAI,CAAC44C,QAAL,GAAgBD,cAAhB;EACD;;EAED,UAAIG,SAAS,GAAG5tC,SAAS,CAAC6tC,UAAV,IAAwB7tC,SAAS,CAAC8tC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACn7C,MAAV,GAAmBk7C,MAAnB,GAA4BC,SAAS,CAACl7C,SAAV,CAAoB,CAApB,EAAuBi7C,MAAvB,CAA5B,GAA6DC,SAAzE;EACA94C,QAAAA,IAAI,CAACi5C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,SAAS,GAAGhuC,SAAS,CAACiuC,UAAV,IAAwBjuC,SAAS,CAACkuC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACv7C,MAAV,GAAmBk7C,MAAnB,GAA4BK,SAAS,CAACt7C,SAAV,CAAoB,CAApB,EAAuBi7C,MAAvB,CAA5B,GAA6DK,SAAzE;EACAl5C,QAAAA,IAAI,CAACq5C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,WAAW,GAAGpuC,SAAS,CAACquC,YAAV,IAA0BruC,SAAS,CAACsuC,aAAtD;;EACA,UAAI,OAAOF,WAAP,KAAuB,WAA3B,EAAwC;EACtCA,QAAAA,WAAW,GAAGA,WAAW,CAAC37C,MAAZ,GAAqBk7C,MAArB,GAA8BS,WAAW,CAAC17C,SAAZ,CAAsB,CAAtB,EAAyBi7C,MAAzB,CAA9B,GAAiES,WAA/E;EACAt5C,QAAAA,IAAI,CAACy5C,EAAL,GAAUH,WAAV,CAFsC;EAGvC,OAvB8C;;;EA0B/C,UAAI,OAAOpuC,SAAS,CAACkuC,WAAjB,KAAiC,WAArC,EAAkD;EAChD,cAAMM,EAAE,GAAGxuC,SAAS,CAACkuC,WAArB;;EACA,YAAIM,EAAE,CAACtuC,KAAH,CAAS,2BAAT,CAAJ,EAA2C;EACzCpL,UAAAA,IAAI,CAAC05C,EAAL,GAAUA,EAAV,CADyC;EAE1C;EACF;EACF;;EAED15C,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA6C,IAAAA,IAAI,CAAC25C,GAAL,GAAWrB,YAAX;EAEAt4C,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;;EACA,QAAIrC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,8DAAc4f,QAAd,CAAuBrX,IAAvB,EApDa;;;EAsDb,QAAIqzB,QAAQ,CAACrzB,IAAI,CAACqvC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,gFAAwBrvC,IAAxB;EACD;;EACDsP,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,8DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EAEA,QAAIovB,QAAQ,CAACrzB,IAAI,CAACqvC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,WAAK7f,KAAL,CAAW9pB,IAAX,CAAgBvK,UAAhB,EAA4B;EAAE6M,QAAAA,CAAC,EAAE;EAAL,OAA5B;EACD;;EAED,oEAAoBswC,YAApB;EACA5oC,IAAAA,UAAU,CAAC,MAAM;EACf,UAAIgpC,OAAO,IAAI,CAAf,EAAkB;EAChB;EACA;EACD;;EAED,sCAAI,IAAJ,2CAA8B;EAC5BztB,QAAAA,WAAW,CAAC,MAAM;EAChB;EACD,SAFU,EAERnxB,8BAFQ,CAAX;EAGD;EACF,KAXS,EAWPD,yBAXO,CAAV;;EAaA;EACD;;EAgBDu5C,EAAAA,wBAAwB,GAAI;EAC1B,WAAO5zC,cAAc,CAACE,wBAAf,MAA6C,KAAKyzC,qBAAzD;EACD;;EAWD;EACA,MAAI7I,aAAJ,CAAmBoI,QAAnB,EAA6B;EAC3B,SAAKrI,cAAL,CAAoB,KAAKT,kBAAzB,IAA+C8I,QAA/C;EACD;EAED;EACF;EACA;EACA;;;EA8BE;;EACA;EACF;EACA;EACA;EACA;EAEEkH,EAAAA,UAAU,CAAEC,GAAF,EAAO;EACf,QAAI,OAAOA,GAAP,KAAe,SAAnB,EAA8B;EAC5BnoC,MAAAA,OAAO,CAACnJ,KAAR,CAAc,0DAAd;EACA;EACD,KAJc;EAMf;;;EACA,QAAItG,GAAG,CAAC6C,OAAJ,KAAgB+0C,GAAhB,IAAuB,CAACA,GAA5B,EAAiC;EAC/B,gEAAc1xC,mBAAd;EACD;;EACDlG,IAAAA,GAAG,CAAC6C,OAAJ,GAAc+0C,GAAd;EACD;;EAEDC,EAAAA,aAAa,GAAI;EACf,WAAO,iBAAP;EACD;;EAEDC,EAAAA,cAAc,CAAEx5C,IAAF,EAAQqwC,YAAR,EAAsB;EAClC,WAAOD,QAAQ,CAAC7kB,MAAT,CAAgBvrB,IAAhB,EAAsBqwC,YAAtB,8BAAoC,IAApC,sCAAP;EACD;;EAEDoB,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,wDAAajE,QAAb,KAA0B,CAA9B,EAAiC;EAC/B,aAAO,sEAAoB+D,aAApB,CAAkCC,aAAlC,EAAiDC,aAAjD,CAAP;EACD,KAFD,MAEO;EACL,YAAM9yC,CAAC,GAAG,+BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;EACF;;EAEDmzC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,0EAAoBD,cAApB,CAAmCC,eAAnC;EACD;;EAEDC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,0EAAoBD,2BAApB,CAAgDC,QAAhD;EACD;;EAEDC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,0EAAoBC,kCAApB,CAAuDD,QAAvD;EACD;;EAz4B4B;;yDAmoBR;EACnB,OAAKa,WAAL,CAAiBtpC,iBAAjB;;EACA,OAAKupC,OAAL,CAAavpC,iBAAb;;EACA,OAAKulB,KAAL,CAAWvlB,iBAAX;;EACA,OAAKkN,OAAL,CAAalN,iBAAb;;EACA,OAAK0wB,aAAL,CAAmB1wB,iBAAnB;EACD;;uCAEUqvB,MAAkB;EAAA,MAAZ2M,KAAY,uEAAJ,EAAI;EAC3B,MAAI+T,OAAJ;EACA,SAAO,YAAY;EACjBjiB,IAAAA,YAAY,CAACiiB,OAAD,CAAZ;EACAA,IAAAA,OAAO,GAAGtqC,UAAU,CAAC4pB,IAAD,EAAO2M,KAAP,CAApB;EACD,GAHD;EAID;;yDAEoB;EACnB,QAAMgU,oBAAoB,+BAAG,IAAH,wBAAkB,MAAM;EAChD,QAAI,kEAAsBl4C,QAAQ,CAAC6J,IAAnC,EAAyC;EACvC,WAAK4sC,WAAL;EACD;EACF,GAJyB,CAA1B;;EAKAyB,EAAAA,oBAAoB;EACrB;;+EAE+B;EAC9B,MAAI;EACF,oCAAI,IAAJ,+CAA+B;EAC7BliB,MAAAA,YAAY,6BAAC,IAAD,8CAAZ;EACD;;EAED,UAAM8c,aAAa,GAAGn0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,QAAI,CAACk/B,aAAL,EAAoB;EAClB,8DAAarxC,KAAb,CAAmB,yBAAnB;;EACA;EACD;EAED;;;EACAqxC,IAAAA,aAAa,CAACt5B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EAEA;;EACA,oFAA4BjL,UAAU,CAAC,MAAM;EAC3C,YAAM+M,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,YAAMiqB,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAxB,aAAwBA,MAAxB,uBAAwBA,MAAM,CAAEgF,aAAhC,CAAlB;EACA;;EACA,YAAMozB,aAAa,GAAGn0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EAEA,UAAI,CAACk/B,aAAL,EAAoB;EAClB,gEAAarxC,KAAb,CAAmB,yBAAnB;;EACA;EACD;;EAED,UAAIshB,SAAJ,EAAe;EACb,cAAM;EAAEC,UAAAA,GAAF;EAAOC,UAAAA;EAAP,YAAiBF,SAAS,CAACG,qBAAV,EAAvB;;EACA,YAAIuwB,MAAM,CAACX,aAAa,CAAC72B,SAAf,CAAN,GAAkC,CAAlC,IAAuC62B,aAAa,CAAC72B,SAAd,KAA4B,IAAvE,EAA6E;EAC3E62B,UAAAA,aAAa,CAACt5B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACDk6B,QAAAA,aAAa,CAACt5B,KAAd,CAAoBwJ,GAApB,aAA6BA,GAAG,GAAG,CAAnC;EACA8vB,QAAAA,aAAa,CAACt5B,KAAd,CAAoB2J,IAApB,aAA8BF,KAAK,GAAG,CAAtC;EACD;EACF,KAnBqC,EAmBnCzpB,4BAnBmC,CAAtC;EAoBD,GAnCD,CAmCE,OAAOgN,KAAP,EAAc;EACd,4DAAa/E,KAAb,CAAmB,yCAAnB,EAA8D+E,KAA9D;EACD;EACF;;+CAqFe;EACd,MAAI+G,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,MAAIuI,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACAmS,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB5V,QAAtB,CAAtB;EACA4V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,4DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;yDAEoB;EACnB,SAAQ,OAAOrC,MAAM,CAACs4C,MAAd,KAAyB,WAAzB,IAAwCt4C,MAAM,CAACs4C,MAAP,CAAcC,IAAd,KAAuB,YAAvE;EACD;;yDAMmBn6C,MAAM;EACxB,MAAI,KAAKozC,wBAAL,EAAJ,EAAqC;EACnCpzC,IAAAA,IAAI,CAAC2vC,KAAL,GAAa,IAAb;EACD;EACF;;uDAckBzwB,SAAS;EAC1B;EACA,MAAIlf,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,CAACsvC,EAAL,GAAU,EAAV;EACA,QAAM58B,UAAU,GAAG,EAAnB;EACA1S,EAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,MAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,IAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,EAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;;EACA,MAAIwM,OAAJ,EAAa;EACX,UAAMlO,IAAI,GAAGhV,MAAM,CAACgV,IAAP,CAAYkO,OAAZ,CAAb;EACAlO,IAAAA,IAAI,CAACC,OAAL,CAAa1T,GAAG,IAAI;EAClByC,MAAAA,IAAI,CAACsvC,EAAL,CAAQ/xC,GAAR,IAAe2hB,OAAO,CAAC3hB,GAAD,CAAtB;EACD,KAFD;EAGD;;EACD,MAAI0E,GAAG,CAACF,QAAR,EAAkB;EAChB/B,IAAAA,IAAI,CAACsvC,EAAL,GAAU,EAAE,GAAGtvC,IAAI,CAACsvC,EAAV;EAAc,SAAGrtC,GAAG,CAACF;EAArB,KAAV;EACD;;EACD/B,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,4DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,QAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,MAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,4DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;QCr4BG0L,SAAS,GAAG,IAAIyqC,SAAJ,CAAcx4C,MAAM,CAAC+N,SAArB;EAElB/N,MAAM,CAAC+N,SAAP,GAAmB/N,MAAM,CAACgO,SAAP,GAAmBD,SAAtC;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const checkBuilder = (logger, accountId) => {\n const search = window.location.search\n const parentWindow = window.opener\n\n if (search === '?ctBuilder') {\n // open in visual builder mode\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n }\n if (search === '?ctBuilderPreview') {\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n }\n\n if (search === '?ctBuilderSDKCheck') {\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === window.location.href.split('?')[0]) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger, accountId) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const search = window.location.search\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n if (!window.opener) {\n console.log('This tab was manually opened. Resetting window.name.')\n window.name = '' // Reset to prevent incorrect flag detection\n return\n }\n if (window.name === 'opened_from_my_tab') {\n console.log('This tab was opened from the parent tab!')\n\n // Now attach the event listener\n window.addEventListener('message', (event) => {\n // if (event.origin !== \"http://localhost:8083\") return; // Security check\n\n console.log('Received message from parent:', event.data)\n // Perform actions based on the received data\n })\n } else {\n console.log('This tab was opened manually, not by the parent tab.')\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { checkBuilder, addAntiFlicker } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n checkBuilder(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview()\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","checkBuilder","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","searchParams","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 6fb99b85..630b81b7 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",G=1e3,H="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),Ge=t("isPersonalisationActive"),He=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,He,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,Ge,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,Ge)[Ge]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=G,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),G;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=G,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===H)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Gt=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Ht(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Ht=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=!1;const r={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},s=()=>{t||n||(n=!0,window.clevertap.renderNotificationViewed(r))},a=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":r.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,r,t)}};o.forEach((e=>{e.url===window.location.href.split("?")[0]&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(s(),a(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(s(),a(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const l=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const l=o.firstElementChild;r.insertAdjacentElement(t,l),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));s(),a(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(l)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=(e,t)=>{const{display:i,wzrk_id:o,wzrk_pivot:n}=e||{},r=i.divId||{},s=i.details[0].html;if(!r||!s)return void t.error("No div Id or no html found");let a=!1;const l={msgId:o,pivotId:n};(e=>{let i=0;const o=setInterval((()=>{const n=document.querySelector(e);n?(a||(a=!0,window.clevertap.renderNotificationViewed(l)),n.outerHTML=s,clearInterval(o)):++i>=20&&(t.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(o))}),500)})(r)},vi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},bi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},mi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { checkBuilder, addAntiFlicker } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n checkBuilder(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview()\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","checkBuilder","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","searchParams","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const checkBuilder = (logger, accountId) => {\n const search = window.location.search\n const parentWindow = window.opener\n\n if (search === '?ctBuilder') {\n // open in visual builder mode\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n }\n if (search === '?ctBuilderPreview') {\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n }\n\n if (search === '?ctBuilderSDKCheck') {\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === window.location.href.split('?')[0]) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger, accountId) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const search = window.location.search\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n if (!window.opener) {\n console.log('This tab was manually opened. Resetting window.name.')\n window.name = '' // Reset to prevent incorrect flag detection\n return\n }\n if (window.opener) {\n console.log('This tab was opened from the parent tab!')\n\n // Now attach the event listener\n window.addEventListener('message', (event) => {\n // if (event.origin !== \"http://localhost:8083\") return; // Security check\n\n console.log('Received message from parent:', event.data)\n // Perform actions based on the received data\n })\n } else {\n console.log('This tab was opened manually, not by the parent tab.')\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { checkBuilder, addAntiFlicker } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n checkBuilder(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview()\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","checkBuilder","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","searchParams","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 630b81b7..e9220f71 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=!1;const r={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},s=()=>{t||n||(n=!0,window.clevertap.renderNotificationViewed(r))},a=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":r.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,r,t)}};o.forEach((e=>{e.url===window.location.href.split("?")[0]&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(s(),a(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(s(),a(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const l=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const l=o.firstElementChild;r.insertAdjacentElement(t,l),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));s(),a(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(l)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n", - "export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n", - "export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n", - "export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n", - "import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n", - "export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n", - "import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n", - "import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n", - "import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n", - "import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n", - "import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n", - "import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n", - "import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n", - "export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n", - "import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n", - "import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => { }\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n", - "import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n" - ], - "names": [ - "TARGET_DOMAIN", - "TARGET_PROTOCOL", - "DEFAULT_REGION", - "Account", - "constructor", - "id", - "region", - "targetDomain", - "token", - "accountId", - "dcSDKVersion", - "finalTargetDomain", - "dataPostPEURL", - "dataPostURL", - "recorderURL", - "emailURL", - "unsupportedKeyCharRegex", - "RegExp", - "unsupportedValueCharRegex", - "singleQuoteRegex", - "CLEAR", - "CHARGED_ID", - "CHARGEDID_COOKIE_NAME", - "GCOOKIE_NAME", - "KCOOKIE_NAME", - "CAMP_COOKIE_NAME", - "CAMP_COOKIE_G", - "SCOOKIE_PREFIX", - "SCOOKIE_EXP_TIME_IN_SECS", - "EV_COOKIE", - "META_COOKIE", - "PR_COOKIE", - "ACCOUNT_ID", - "ARP_COOKIE", - "LCOOKIE_NAME", - "GLOBAL", - "DISPLAY", - "WEBPUSH_LS_KEY", - "OPTOUT_KEY", - "CT_OPTOUT_KEY", - "OPTOUT_COOKIE_ENDSWITH", - "USEIP_KEY", - "LRU_CACHE", - "LRU_CACHE_SIZE", - "IS_OUL", - "EVT_PUSH", - "EVT_PING", - "COOKIE_EXPIRY", - "MAX_TRIES", - "FIRST_PING_FREQ_IN_MILLIS", - "CONTINUOUS_PING_FREQ_IN_MILLIS", - "GROUP_SUBSCRIPTION_REQUEST_ID", - "categoryLongKey", - "WZRK_PREFIX", - "WZRK_ID", - "NOTIFICATION_VIEWED", - "NOTIFICATION_CLICKED", - "FIRE_PUSH_UNREGISTERED", - "PUSH_SUBSCRIPTION_DATA", - "COMMAND_INCREMENT", - "COMMAND_DECREMENT", - "COMMAND_SET", - "COMMAND_ADD", - "COMMAND_REMOVE", - "COMMAND_DELETE", - "WEBINBOX_CONFIG", - "WEBINBOX", - "MAX_INBOX_MSG", - "VARIABLES", - "PUSH_DELAY_MS", - "MAX_DELAY_FREQUENCY", - "WZRK_FETCH", - "WEBPUSH_CONFIG", - "VAPID_MIGRATION_PROMPT_SHOWN", - "NOTIF_LAST_TIME", - "TIMER_FOR_NOTIF_BADGE_UPDATE", - "OLD_SOFT_PROMPT_SELCTOR_ID", - "NEW_SOFT_PROMPT_SELCTOR_ID", - "POPUP_LOADING", - "SYSTEM_EVENTS", - "isString", - "input", - "String", - "isObject", - "Object", - "prototype", - "toString", - "call", - "isDateObject", - "Date", - "isObjectEmpty", - "obj", - "prop", - "hasOwnProperty", - "isConvertibleToNumber", - "n", - "isNaN", - "parseFloat", - "isFinite", - "isNumber", - "test", - "isValueValid", - "value", - "undefined", - "removeUnsupportedChars", - "o", - "logger", - "key", - "sanitizedVal", - "sanitizedKey", - "sanitize", - "length", - "substring", - "reportError", - "val", - "regex", - "replace", - "getToday", - "today", - "getFullYear", - "getMonth", - "getDay", - "getNow", - "Math", - "floor", - "getTime", - "convertToWZRKDate", - "dateObj", - "round", - "setDate", - "dt", - "isDateValid", - "date", - "matches", - "exec", - "d", - "m", - "y", - "composedDate", - "getDate", - "StorageManager", - "save", - "_isLocalStorageSupported", - "localStorage", - "setItem", - "JSON", - "stringify", - "read", - "data", - "getItem", - "parse", - "e", - "remove", - "removeItem", - "removeCookie", - "name", - "domain", - "cookieStr", - "document", - "cookie", - "createCookie", - "seconds", - "expires", - "domainStr", - "setTime", - "toGMTString", - "encodeURIComponent", - "readCookie", - "nameEQ", - "ca", - "split", - "idx", - "c", - "charAt", - "indexOf", - "decodeURIComponent", - "window", - "saveToLSorCookie", - "property", - "location", - "hostname", - "$ct", - "globalCache", - "readFromLSorCookie", - "trim", - "err", - "createBroadCookie", - "broadDomain", - "domainParts", - "testBroadDomain", - "testCookieName", - "tempCookie", - "getMetaProp", - "metaObj", - "setMetaProp", - "wzrkMetaObj", - "getAndClearMetaProp", - "setInstantDeleteFlagInK", - "k", - "flag", - "backupEvent", - "reqNo", - "backupArr", - "q", - "debug", - "removeBackup", - "respNo", - "backupMap", - "gcookie", - "REQ_N", - "RESP_N", - "globalProfileMap", - "globalEventsMap", - "blockRequest", - "isOptInRequest", - "webPushEnabled", - "campaignDivMap", - "currentSessionId", - "wiz_counter", - "notifApi", - "notifEnabledFromApi", - "unsubGroups", - "updatedCategoryLong", - "inbox", - "isPrivacyArrPushed", - "privacyArray", - "offline", - "dismissSpamControl", - "globalUnsubscribe", - "flutterVersion", - "variableStore", - "pushConfig", - "LRUCache", - "max", - "lruCache", - "tempLruCache", - "cache", - "entry", - "push", - "get", - "item", - "saveCacheToLS", - "set", - "allKeys", - "objToArray", - "index", - "temp", - "getKey", - "getSecondLastKey", - "keysArr", - "getLastKey", - "keysLength", - "newCache", - "indexToDelete", - "splice", - "CleverTapAPI", - "request", - "device", - "session", - "s", - "global", - "resume", - "respNumber", - "optOutResponse", - "oulReq", - "newGuid", - "isOULInProgress", - "oulReqN", - "sessionObj", - "getSessionCookieObject", - "kIdFromLS", - "guidFromLRUCache", - "lastK", - "lastGUID", - "unregisterTokenForGuid", - "manageSession", - "t", - "setSessionCookieObject", - "processingBackup", - "processBackupEvents", - "DeviceManager", - "getGuid", - "guid", - "error", - "DATA_NOT_SENT_TEXT", - "CLEVERTAP_ERROR_PREFIX", - "EMBED_ERROR", - "EVENT_ERROR", - "GENDER_ERROR", - "EMPLOYED_ERROR", - "MARRIED_ERROR", - "EDUCATION_ERROR", - "AGE_ERROR", - "DOB_ERROR", - "ENUM_FORMAT_ERROR", - "PHONE_FORMAT_ERROR", - "_globalChargedId", - "isEventStructureFlat", - "eventObj", - "Array", - "isArray", - "isChargedEventStructureValid", - "chargedObj", - "itemKey", - "chargedId", - "EventHandler", - "values", - "isPersonalisationActive", - "eventsArr", - "_processOldValues", - "getDetails", - "evtName", - "evtObj", - "respObj", - "firstTime", - "lastTime", - "count", - "eventName", - "shift", - "includes", - "type", - "unshift", - "evtData", - "processEvent", - "getURLParams", - "url", - "urlParams", - "uri", - "match", - "pl", - "search", - "decode", - "replacement", - "getDomain", - "a", - "createElement", - "href", - "addToURL", - "v", - "getHostName", - "urlBase64ToUint8Array", - "base64String", - "padding", - "repeat", - "base64", - "rawData", - "atob", - "processedData", - "i", - "charCodeAt", - "Uint8Array", - "compressData", - "dataObject", - "compressToBase64", - "compress", - "uncompressed", - "context_dictionary", - "context_dictionaryToCreate", - "context_c", - "context_wc", - "context_w", - "context_enlargeIn", - "context_dictSize", - "context_numBits", - "context_data_string", - "context_data_val", - "context_data_position", - "ii", - "f", - "fromCharCode", - "pow", - "getKeyStr", - "_keyStr", - "output", - "chr1", - "chr2", - "chr3", - "enc1", - "enc2", - "enc3", - "enc4", - "NaN", - "RequestDispatcher", - "networkRetryCount", - "minDelayFrequency", - "fireRequest", - "skipARP", - "sendOULFlag", - "getDelayFrequency", - "account", - "randomDelay", - "random", - "skipResARP", - "_arp", - "pageLoadUrl", - "useIP", - "slice", - "tries", - "setTimeout", - "clevertap", - "wizrocket", - "plugin", - "ctCbScripts", - "getElementsByClassName", - "parentNode", - "removeChild", - "setAttribute", - "async", - "getElementsByTagName", - "appendChild", - "getCampaignObject", - "finalcampObj", - "campObj", - "wp", - "saveCampaignObject", - "campaignObj", - "newObj", - "setCampaignObjectForGuid", - "guidCampObj", - "finalCampObj", - "keys", - "forEach", - "campKeyObj", - "globalObj", - "dailyObj", - "campaignIdArray", - "resultObj", - "dailyC", - "totalC", - "campaignId", - "console", - "getCampaignObjForLc", - "storageValue", - "decodedValue", - "parsedValue", - "resultObjWP", - "resultObjWI", - "wi", - "todayCwp", - "todayCwi", - "tc", - "wmp", - "wimp", - "tlc", - "witlc", - "isProfileValid", - "profileObj", - "valid", - "profileKey", - "profileVal", - "Age", - "Phone", - "processFBUserObj", - "user", - "profileData", - "Name", - "FBID", - "gender", - "Gender", - "getHighestEducation", - "eduArr", - "college", - "highschool", - "edu", - "relationship_status", - "Married", - "education", - "Education", - "work", - "Employed", - "email", - "Email", - "birthday", - "mmddyy", - "DOB", - "processGPlusUserObj", - "displayName", - "GPID", - "image", - "isDefault", - "Photo", - "emails", - "emailIdx", - "emailObj", - "organizations", - "orgObj", - "yyyymmdd", - "relationshipStatus", - "addToLocalProfileMap", - "override", - "_custom", - "closeIframe", - "divIdIgnored", - "sessionCampaignObj", - "divId", - "getElementById", - "arp", - "jsonMap", - "isOULARP", - "arpFromStorage", - "setEnum", - "enumVal", - "handleEmailSubscription", - "subscription", - "reEncoded", - "fetchGroups", - "urlParamsAsIs", - "encodedEmailId", - "encodedProfileProps", - "p", - "pageType", - "page_type", - "ProfileHandler", - "profilesArr", - "getAttribute", - "propName", - "_handleIncrementDecrementValue", - "command", - "tz", - "profile", - "addSystemDataToObject", - "addFlags", - "compressedData", - "saveAndFireRequest", - "_handleMultiValueSet", - "arrayVal", - "array", - "toLowerCase", - "sendMultiValueData", - "_handleMultiValueAdd", - "propKey", - "propVal", - "existingValue", - "addValue", - "normalizedValue", - "_handleMultiValueRemove", - "removeValue", - "_handleMultiValueDelete", - "profileArr", - "outerObj", - "Site", - "Facebook", - "FbProfileObj", - "GPlusProfileObj", - "UserLoginHandler", - "clear", - "addToK", - "ids", - "g", - "kId", - "anonymousUser", - "foundInCache", - "gFromCache", - "Identity", - "cookieName", - "loginArr", - "pop", - "processProfile", - "CTWebPopupImageOnly", - "HTMLElement", - "_target", - "_session", - "shadow", - "popup", - "container", - "resizeObserver", - "attachShadow", - "mode", - "target", - "renderImageOnlyPopup", - "msgId", - "wzrk_id", - "pivotId", - "wzrk_pivot", - "onClickUrl", - "display", - "sessionId", - "innerHTML", - "getImageOnlyPopupContent", - "shadowRoot", - "closeIcon", - "addEventListener", - "updateImageAndContainerWidth", - "ResizeObserver", - "handleResize", - "observe", - "unobserve", - "style", - "renderNotificationViewed", - "open", - "parent", - "renderNotificationClicked", - "width", - "getRenderedImageWidth", - "setProperty", - "msgContent", - "css", - "html", - "visibility", - "img", - "ratio", - "naturalWidth", - "naturalHeight", - "height", - "Message", - "config", - "message", - "wrapper", - "snackBar", - "renderMessage", - "createEl", - "part", - "_el", - "msg", - "templateType", - "prepareBasicMessage", - "timeStamp", - "determineTimeStampText", - "viewed", - "unreadMarker", - "imageUrl", - "imageContainer", - "addImage", - "iconTitleDescWrapper", - "iconUrl", - "iconContainer", - "titleDescWrapper", - "title", - "innerText", - "description", - "buttons", - "buttonsContainer", - "addButtons", - "hasCopyAction", - "b", - "button", - "text", - "cssText", - "action", - "addSnackbar", - "greenTickSvg", - "clipboardMsg", - "raiseClickedEvent", - "path", - "isPreview", - "raiseClickedForBasicTemplates", - "payload", - "tagName", - "kv", - "wzrk_c2a", - "openUrlInNewTab", - "focus", - "navigator", - "clipboard", - "writeText", - "clipboardText", - "log", - "messageStyles", - "backgroundColor", - "borderColor", - "titleColor", - "descriptionColor", - "buttonColor", - "buttonTextColor", - "unreadMarkerColor", - "inboxContainerStyles", - "panelBackgroundColor", - "panelBorderColor", - "headerBackgroundColor", - "headerTitleColor", - "closeIconColor", - "categoriesTabColor", - "categoriesTitleColor", - "categoriesBorderColor", - "selectedCategoryTabColor", - "selectedCategoryTitleColor", - "selectedCategoryBorderColor", - "headerCategoryHeight", - "Inbox", - "isInboxOpen", - "isInboxFromFlutter", - "selectedCategory", - "unviewedMessages", - "unviewedCounter", - "inboxConfigForPreview", - "inboxSelector", - "emptyInboxMsg", - "inboxCard", - "unviewedBadge", - "observer", - "selectedCategoryRef", - "addClickListenerOnDocument", - "composedPath", - "toggleInbox", - "startsWith", - "prevCategoryRef", - "updateActiveCategory", - "_path", - "filter", - "messageEl", - "checkForWebInbox", - "setBadgeStyle", - "msgCount", - "shouldShowUnviewedBadge", - "incomingMessages", - "msgs", - "updateInboxMessages", - "incomingMessagesForPreview", - "previewMsgs", - "now", - "buildUIForMessages", - "updateUnviewedBadgeCounter", - "connectedCallback", - "init", - "styles", - "notificationsBadge", - "addUnviewedBadge", - "createinbox", - "removeEventListener", - "categories", - "getInboxStyles", - "addMsgsToInboxFromLS", - "messages", - "deleteExpiredAndGetUnexpiredMsgs", - "msgIds", - "deleteMsgsFromUI", - "getInboxMessages", - "wzrk_ttl", - "el", - "sort", - "reduce", - "acc", - "saveInboxMessages", - "inboxMsgs", - "incomingMsgs", - "textColor", - "body", - "updateUnviewedBadgePosition", - "inboxNode", - "top", - "right", - "getBoundingClientRect", - "left", - "header", - "headerTitle", - "createCategories", - "options", - "root", - "rootMargin", - "threshold", - "IntersectionObserver", - "entries", - "handleMessageViewed", - "categoriesContainer", - "leftArrow", - "arrowSvg", - "children", - "scrollBy", - "categoriesWrapper", - "_categories", - "category", - "rightArrow", - "firstCategory", - "lastCategory", - "firstCategoryObserver", - "categoryObserverCb", - "intersectionRatio", - "lastCategoryObserver", - "hide", - "activeCategory", - "scrollTop", - "counter", - "childNodes", - "updateTSForRenderedMsgs", - "maxMsgsInInbox", - "firstChild", - "sortedMsgs", - "map", - "tags", - "insertBefore", - "msgTotalCount", - "querySelectorAll", - "ctInboxMsgs", - "hasMessages", - "inboxElement", - "contains", - "raiseViewedEvent", - "isIntersecting", - "updateMessageInLS", - "rect", - "zIndex", - "scrollLeft", - "scrollWidth", - "setInboxPosition", - "windowWidth", - "outerWidth", - "customInboxStyles", - "getComputedStyle", - "getPropertyValue", - "bottom", - "hasPositionDefined", - "res", - "getInboxPosition", - "clientHeight", - "clientWidth", - "xPos", - "yPos", - "ts", - "headerHeight", - "categoriesHeight", - "tabColor", - "selectedTab", - "inboxStyles", - "cardStyles", - "cards", - "msgStyles", - "processWebInboxSettings", - "webInboxSetting", - "_settings", - "processInboxNotifs", - "inbox_preview", - "inbox_notifs", - "addWebInbox", - "checkAndRegisterWebInboxElements", - "getAndMigrateInboxMessages", - "gudInboxObj", - "storedInboxObj", - "initializeWebInbox", - "Promise", - "resolve", - "reject", - "retryUntil", - "condition", - "interval", - "maxRetries", - "attempts", - "retry", - "setInterval", - "clearInterval", - "Error", - "addInboxSafely", - "checkElementCondition", - "onFailure", - "retryStarted", - "startRetry", - "then", - "catch", - "setupEventListeners", - "readyState", - "customElements", - "define", - "inboxHeight", - "inboxWidth", - "horizontalScroll", - "scrollingElement", - "verticalScroll", - "innerWidth", - "windowHeight", - "innerHeight", - "selectorRect", - "selectorX", - "x", - "selectorY", - "selectorLeft", - "selectorRight", - "selectorTop", - "selectorBottom", - "selectorHeight", - "selectorWidth", - "selectorCenter", - "halfOfInboxHeight", - "halfOfInboxWidth", - "inboxOnSide", - "availableHeight", - "inboxRight", - "availableWidth", - "inboxLeft", - "diff", - "hasWebInboxSettingsInLS", - "OVERLAY_PATH", - "CSS_PATH", - "WVE_CLASS", - "FLICKER_SHOW", - "FLICKER_HIDE", - "FLICKER_ID", - "updateFormData", - "element", - "formStyle", - "underline", - "curTextDecoration", - "textDecoration", - "clickDetails", - "clickUrl", - "onclick", - "newTab", - "raiseNotificationClicked", - "imgURL", - "src", - "updateElementCSS", - "elementCSS", - "head", - "handleActionMode", - "searchParams", - "URLSearchParams", - "ctType", - "parentWindow", - "opener", - "handleMessageEvent", - "postMessage", - "originUrl", - "sdkVersion", - "event", - "isValidUrl", - "msgOrigin", - "URL", - "origin", - "evtMaster", - "personalisation", - "initialiseCTBuilder", - "variant", - "details", - "renderVisualBuilder", - "onContentLoad", - "contentLoaded", - "isShopify", - "Shopify", - "documentElement", - "position", - "overlayPath", - "loadOverlayScript", - "loadCSS", - "link", - "rel", - "script", - "onload", - "Overlay", - "onerror", - "targetingMsgJson", - "insertedElements", - "currentUrl", - "delete", - "notificationViewed", - "raiseViewed", - "raiseClicked", - "processElement", - "selector", - "isTrackingClicks", - "clickedPayload", - "msgCTkv", - "wzrk_selector", - "editor", - "outerHTML", - "dispatchJsonData", - "form", - "tryFindingElement", - "intervalId", - "retryElement", - "querySelector", - "_", - "selectorData", - "initialHtml", - "addNewEl", - "pos", - "sibling", - "findSiblingSelector", - "siblingEl", - "ctEl", - "tempDiv", - "newElement", - "firstElementChild", - "insertAdjacentElement", - "insertedElement", - "sortedArr", - "numA", - "parseInt", - "numB", - "inaObj", - "json", - "kvPairsEvent", - "CustomEvent", - "detail", - "dispatchEvent", - "string", - "Boolean", - "_err", - "addAntiFlicker", - "antiFlicker", - "personalizedSelectors", - "delayTime", - "retryElements", - "retryCount", - "retryInterval", - "isInViewport", - "styleContent", - "styleId", - "styleElement", - "textContent", - "applyAntiFlicker", - "selectors", - "processSelectors", - "selectorElements", - "elements", - "matchedElements", - "applyStyles", - "retryProcessing", - "classList", - "add", - "observeUrlChange", - "previousHref", - "MutationObserver", - "childList", - "subtree", - "CTWebPersonalisationBanner", - "_details", - "renderBanner", - "getBannerContent", - "trackClick", - "onClick", - "divHeight", - "desktopImageURL", - "mobileImageURL", - "CTWebPersonalisationCarousel", - "_carousel", - "slides", - "previouslySelectedItem", - "selectedItem", - "autoSlide", - "stopAutoSlideTimeout", - "renderCarousel", - "getStyles", - "carousel", - "getCarouselContent", - "showNavBtns", - "insertAdjacentHTML", - "navBtnsHtml", - "showNavArrows", - "leftNavArrowHtml", - "rightNavArrowHtml", - "setupClick", - "updateSelectedItem", - "startAutoSlide", - "setupOnHover", - "eventID", - "selected", - "endsWith", - "goToNext", - "goToPrev", - "wzrk_slideNo", - "clearTimeout", - "banner", - "navBtnsCss", - "navArrowsCss", - "prevItem", - "prevButton", - "sliderTime", - "goTo", - "prev", - "cur", - "renderPersonalisationBanner", - "divSelector", - "bannerEl", - "containerEl", - "renderPersonalisationCarousel", - "handleKVpairCampaign", - "renderCustomHtml", - "wzrkId", - "wzrkPivot", - "handleJson", - "jsonEvent", - "invokeExternalJs", - "jsFunc", - "func", - "appendScriptForCustomEvent", - "staleDataUpdate", - "staledata", - "campType", - "mergeEventMap", - "newEvtMap", - "oldEvtObj", - "newEvtObj", - "incrementImpression", - "_request", - "setupClickEvent", - "contentDiv", - "isLegacy", - "_device", - "ctaElement", - "jsCTAElements", - "preview", - "getCookieParams", - "rValue", - "notifications", - "skipDialog", - "scookieObj", - "renderPopUpImageOnly", - "popupImageOnly", - "getBoxPromptStyles", - "totalBorderWidth", - "card", - "borderEnabled", - "border", - "borderWidth", - "cardPadding", - "cardContentWidth", - "overlay", - "color", - "borderRadius", - "primaryButton", - "secondaryButton", - "getBellIconStyles", - "isChrome", - "ua", - "userAgent", - "isFirefox", - "isSafari", - "NotificationHandler", - "displayArgs", - "enable", - "swPath", - "enablePush", - "setUpWebPushNotifications", - "subscriptionCallback", - "serviceWorkerPath", - "apnsWebPushId", - "apnsServiceUrl", - "setApplicationServerKey", - "applicationServerKey", - "_enableWebPush", - "enabled", - "serviceWorker", - "register", - "registration", - "Notification", - "requestPermission", - "permission", - "subscribeObj", - "userVisibleOnly", - "info", - "subscribeForPush", - "pushManager", - "subscribe", - "endpoint", - "subscriptionData", - "registerToken", - "existingBellWrapper", - "installing", - "waiting", - "active", - "state", - "safari", - "pushNotification", - "deviceToken", - "browser", - "registrationScope", - "__wzrk_account_id", - "scope", - "rootDirRegex", - "isServiceWorkerAtRoot", - "ready", - "getRegistrations", - "serviceWorkerRegistration", - "getSubscription", - "unsubscribe", - "successful", - "scriptTag", - "titleText", - "bodyText", - "okButtonText", - "rejectButtonText", - "okButtonColor", - "askAgainTimeInSeconds", - "okCallback", - "rejectCallback", - "httpsPopupPath", - "httpsIframePath", - "apnsWebPushServiceUrl", - "vapidSupportedAndMigrated", - "notifObj", - "isHTTP", - "protocol", - "hasNotification", - "notifLastTime", - "httpsIframe", - "from", - "wzrkPermissionPopup", - "wizAlert", - "confirmButtonText", - "confirmButtonColor", - "BELL_BASE64", - "PROMPT_BELL_BASE64", - "appServerKey", - "notificationHandler", - "processWebPushConfig", - "webPushConfig", - "_pushConfig", - "updatePushConfig", - "customSwPath", - "fcmPublicKey", - "showBox", - "boxType", - "showBellIcon", - "boxConfig", - "createNotificationBox", - "bellIconConfig", - "createBellIcon", - "createElementWithAttributes", - "tag", - "attributes", - "configData", - "content", - "overlayDiv", - "pnCard", - "icon", - "primaryButtonText", - "secondaryButtonText", - "setElementPosition", - "lastNotifTime", - "popupFrequency", - "shouldShowNotification", - "addEventListeners", - "vapidSupportedAndNotMigrated", - "bellWrapper", - "bellIcon", - "gifModal", - "gifImage", - "closeModal", - "hoverText", - "tooltip", - "addBellEventListeners", - "setServerKey", - "serverKey", - "removeWrapper", - "toggleGifModal", - "displayTooltip", - "clearTooltip", - "assign", - "inset", - "transform", - "positions", - "Center", - "Top", - "Bottom", - "bellRect", - "midX", - "midY", - "_tr", - "_logger", - "_wizCounter", - "doCampHouseKeeping", - "incrCount", - "excludeFromFreqCaps", - "currentCount", - "totalCount", - "sessionStorage", - "campTypeObj", - "wtarget_type", - "wmc", - "wimc", - "campaignSessionLimit", - "campaignDailyLimit", - "campaignTotalLimit", - "totalDailyLimit", - "totalSessionLimit", - "totalInboxSessionLimit", - "efc", - "mdc", - "tdc", - "campaignSessionCount", - "totalSessionCount", - "campaignDailyCount", - "totalDailyCount", - "campaignTotalCount", - "displayObj", - "delay", - "campKey", - "newCampObj", - "setupClickUrl", - "handleImageOnlyPopup", - "msgDiv", - "isExistingCampaign", - "testIframe", - "iframeDocument", - "contentDocument", - "contentWindow", - "createTemplate", - "isExitIntent", - "layout", - "showExitIntent", - "opacityDivId", - "opacityElement", - "isBanner", - "opacityDiv", - "opacity", - "rgbaColor", - "viewHeight", - "viewWidth", - "legacy", - "marginBottom", - "contentHeight", - "bottomPosition", - "widthPerct", - "proto", - "iFrameStyle", - "iframe", - "br", - "frameborder", - "marginheight", - "marginwidth", - "scrolling", - "pointerCss", - "sandbox", - "bgColor", - "btnBg", - "leftTd", - "btColor", - "theme", - "descriptionText", - "imageTd", - "onClickStr", - "closeCampaign", - "Event", - "srcdoc", - "adjustIFrameHeight", - "scrollHeight", - "margin", - "inDoc", - "_timer", - "renderFooterNotification", - "_callBackCalled", - "showFooterNotification", - "notificationCallback", - "raiseNotificationViewed", - "popupCurrentWzrkId", - "deliveryTrigger", - "inactive", - "triggerByInactivity", - "scroll", - "triggerByScroll", - "exitintentObj", - "onmouseleave", - "deliveryDelayed", - "popupCallbacks", - "popupCallback", - "wzrkPrefixKey", - "wzrkJson", - "raisePopupNotificationClicked", - "notificationData", - "eventData", - "wzrkPrefixObj", - "targetNotif", - "IDLE_TIME_THRESHOLD", - "idleTimer", - "events", - "resetIdleTimer", - "removeEventListeners", - "eventHandler", - "eventType", - "passive", - "calculateScrollPercentage", - "scrollListener", - "scrollPercentage", - "throttledScrollListener", - "throttle", - "limit", - "inThrottle", - "context", - "args", - "apply", - "targetObj", - "clientY", - "intentPreview", - "intentOpacityDiv", - "ctaText", - "processNativeDisplayArr", - "arrInAppNotifs", - "elementId", - "addLoadListener", - "inapp_notifs", - "handleInboxNotifications", - "msgArr", - "vars", - "mergeVariables", - "evpr", - "eventsMap", - "profileMap", - "syncExpiry", - "expires_in", - "inapp_stale", - "inbox_stale", - "User", - "getTotalVisits", - "visitCount", - "getLastVisit", - "prevSession", - "logLevels", - "DISABLE", - "ERROR", - "INFO", - "DEBUG", - "DEBUG_PE", - "Logger", - "logLevel", - "wzrkError", - "debugPE", - "code", - "level", - "WZRK_D", - "SessionManager", - "scookieStr", - "objStr", - "currentSessionInLS", - "sessionCount", - "getTimeElapsed", - "sessionStart", - "getPageCount", - "seqNo", - "requestTime", - "RequestManager", - "fired", - "ignoreTrim", - "wzrk_error", - "pg", - "af", - "lib", - "rc", - "lastSyncTime", - "expirySeconds", - "dsync", - "givenGUID", - "post", - "fetch", - "method", - "headers", - "response", - "ok", - "nowTs", - "evtDetail", - "Privacy", - "privacyArr", - "privacyObj", - "curr", - "optOut", - "shouldUseIP", - "Variable", - "defaultValue", - "hadStarted", - "valueChangedCallbacks", - "getValue", - "getdefaultValue", - "typeOfDefaultValue", - "existing", - "getVariable", - "varInstance", - "registerVariable", - "update", - "newValue", - "oldValue", - "hasVarsRequestCompleted", - "triggerValueChanged", - "onValueChanged", - "addValueChangedCallback", - "removeValueChangedCallback", - "clearStartFlag", - "VariableStore", - "syncVariables", - "onSyncSuccess", - "onSyncFailure", - "meta", - "tk", - "r", - "status", - "fetchVariables", - "onFetchCallback", - "addVariablesChangedCallback", - "callback", - "addOneTimeVariablesChangedCallback", - "removeVariablesChangedCallback", - "removeOneTimeVariablesChangedCallback", - "callBack", - "CleverTap", - "spa", - "isSpa", - "bind", - "enablePersonalization", - "_isPersonalisationActive", - "shpfyProxyPath", - "ReqestManager", - "onUserLogin", - "privacy", - "logout", - "getCleverTapID", - "getAccountID", - "getSCDomain", - "setLibrary", - "libName", - "libVersion", - "setSCSDKVersion", - "ver", - "scSDKVersion", - "scv", - "getInboxMessageCount", - "getInboxMessageUnreadCount", - "unreadMessages", - "getUnreadInboxMessages", - "result", - "getAllInboxMessages", - "getInboxMessageForId", - "messageId", - "deleteInboxMessage", - "unViewedBadge", - "ctInbox", - "markReadInboxMessage", - "markReadInboxMessagesForIds", - "messageIds", - "markReadAllInboxMessage", - "unreadMsg", - "processNotificationEvent", - "eventDetail", - "setLogLevel", - "l", - "Number", - "handleIncrementValue", - "handleDecrementValue", - "setMultiValuesForKey", - "addMultiValueForKey", - "addMultiValuesForKey", - "removeMultiValueForKey", - "removeMultiValuesForKey", - "removeValueForKey", - "_handleEmailSubscription", - "getLocation", - "lat", - "lng", - "Latitude", - "Longitude", - "geolocation", - "getCurrentPosition", - "showPosition", - "showError", - "coords", - "latitude", - "longitude", - "PERMISSION_DENIED", - "POSITION_UNAVAILABLE", - "TIMEOUT", - "UNKNOWN_ERROR", - "api", - "enableWebPush", - "tr", - "is_onloadcalled", - "subEmail", - "getEmail", - "withGroups", - "unSubEmail", - "unsubEmailGroups", - "isUnsubscribed", - "checked", - "setSubscriptionGroups", - "getSubscriptionGroups", - "changeSubscriptionGroups", - "updatedGroups", - "isGlobalUnsubscribe", - "setIsGlobalUnsubscribe", - "setUpdatedCategoryLong", - "$CLTP_WR", - "$WZRK_WR", - "currLocation", - "wzrk_ex", - "pageChanged", - "backupInterval", - "pgCount", - "referrerDomain", - "referrer", - "maxLen", - "utmSource", - "utm_source", - "wzrk_source", - "us", - "utmMedium", - "utm_medium", - "wzrk_medium", - "um", - "utmCampaign", - "utm_campaign", - "wzrk_campaign", - "uc", - "wm", - "cpg", - "setOffline", - "arg", - "getSDKVersion", - "defineVariable", - "timeout", - "debouncedPageChanged", - "wzrk_d", - "ping", - "Clevertap" - ], - "mappings": "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" -} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import {CSS_PATH, OVERLAY_PATH, WVE_CLASS} from './builder_constants'\nimport {updateFormData, updateElementCSS} from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({message: 'preview', originUrl: window.location.href}, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({id: '#overlayDiv', url, variant, details, isShopify, personalisation})\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: {wzrk_selector: selector.isTrackingClicks.name}\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = {wzrk_selector: selector.selector}\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${ selector }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const {pos, sibling} = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${ sibling }\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${ sibling }\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${ selector.selector }\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${ sibling }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return {pos: match[2], sibling: match[3]}\n }\n return {pos: 'beforebegin', sibling: ''}\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const {personalizedSelectors = [], delayTime = 2000} = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const {innerHeight: windowHeight, innerWidth: windowWidth} = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, {childList: true, subtree: true})\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n logger.debug('open in preview mode')\n if (parentWindow) {\n window.addEventListener('message', (event) => {\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 05990f5f..4866f2c6 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function (e, t) {"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).clevertap = t()}(this, (function () {"use strict"; var e = 0; function t (t) {return "__private_" + e++ + "_" + t} function i (e, t) {if (!Object.prototype.hasOwnProperty.call(e, t)) throw new TypeError("attempted to use private field on non-instance"); return e} const o = "clevertap-prod.com", n = "https:"; var r = t("accountId"), s = t("region"), a = t("targetDomain"), l = t("dcSdkversion"), c = t("token"); class d {constructor() {let {id: e} = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : o, n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ""; Object.defineProperty(this, r, {writable: !0, value: void 0}), Object.defineProperty(this, s, {writable: !0, value: ""}), Object.defineProperty(this, a, {writable: !0, value: o}), Object.defineProperty(this, l, {writable: !0, value: ""}), Object.defineProperty(this, c, {writable: !0, value: ""}), this.id = e, t && (this.region = t), i && (this.targetDomain = i), n && (this.token = n)} get id () {return i(this, r)[r]} set id (e) {i(this, r)[r] = e} get region () {return i(this, s)[s]} set region (e) {i(this, s)[s] = e} get dcSDKVersion () {return i(this, l)[l]} set dcSDKVersion (e) {i(this, l)[l] = e} get targetDomain () {return i(this, a)[a]} set targetDomain (e) {i(this, a)[a] = e} get token () {return i(this, c)[c]} set token (e) {i(this, c)[c] = e} get finalTargetDomain () {return this.region ? "".concat(this.region, ".").concat(this.targetDomain) : this.targetDomain === o ? "".concat("eu1", ".").concat(this.targetDomain) : this.targetDomain} get dataPostPEURL () {return "".concat(n, "//").concat(this.finalTargetDomain, "/defineVars")} get dataPostURL () {return "".concat(n, "//").concat(this.finalTargetDomain, "/a?t=96")} get recorderURL () {return "".concat(n, "//").concat(this.finalTargetDomain, "/r?r=1")} get emailURL () {return "".concat(n, "//").concat(this.finalTargetDomain, "/e?r=1")} } const u = new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$", "g"), h = new RegExp("^\\s+|'|\"|\\\\|\\s+$", "g"), p = new RegExp("'", "g"), g = "clear", f = "Charged ID", v = "WZRK_CHARGED_ID", b = "WZRK_G", m = "WZRK_K", y = "WZRK_CAMP", w = "WZRK_CAMP_G", C = "WZRK_EV", k = "WZRK_META", x = "WZRK_PR", I = "WZRK_ACCOUNT_ID", M = "WZRK_ARP", S = "WZRK_L", P = "global", O = "optOut", E = "useIP", _ = "WZRK_X", D = "push", A = 31536e3, L = "wzrk_", T = "wzrk_id", N = "Notification Viewed", z = "Notification Clicked", j = "WZRK_FPU", R = "WZRK_PSD", B = "$incr", U = "$add", F = "$remove", W = "$delete", V = "WZRK_INBOX_CONFIG", q = "WZRK_INBOX", G = 1e3, H = "wzrk_fetch", K = "WZRK_PUSH_CONFIG", Z = "vapid_migration_prompt_shown", J = "notif_last_time", Q = "wzrk_wrapper", Y = "pnWrapper", $ = "WZRK_POPUP_LOADING", X = ["Stayed", "UTM Visited", "App Launched", "Notification Sent", N, z], ee = e => "string" == typeof e || e instanceof String, te = e => "[object Object]" === Object.prototype.toString.call(e), ie = e => "object" == typeof e && e instanceof Date, oe = e => {for (const t in e) if (e.hasOwnProperty(t)) return !1; return !0}, ne = e => !isNaN(parseFloat(e)) && isFinite(e), re = e => /^-?[\d.]+(?:e-?\d+)?$/.test(e) && "number" == typeof e, se = e => null != e && "undefined" !== e, ae = (e, t) => {if ("object" != typeof e) {let i; return ee(e) ? (i = le(e, h), i.length > 1024 && (i = i.substring(0, 1024), t.reportError(521, i + "... length exceeded 1024 chars. Trimmed."))) : i = e, i} for (const i in e) if (e.hasOwnProperty(i)) {const o = ae(e[i], t); let n; n = le(i, u), n.length > 1024 && (n = n.substring(0, 1024), t.reportError(520, n + "... length exceeded 1024 chars. Trimmed.")), delete e[i], e[n] = o} return e}, le = (e, t) => e.replace(t, ""), ce = () => {const e = new Date; return e.getFullYear() + "" + e.getMonth() + e.getDay()}, de = () => Math.floor((new Date).getTime() / 1e3), ue = e => "$D_" + Math.round(e.getTime() / 1e3), he = e => {if (pe(e)) return "$D_" + e}, pe = e => {const t = /^(\d{4})(\d{2})(\d{2})$/.exec(e); if (null == t) return !1; const i = t[3], o = t[2] - 1, n = t[1], r = new Date(n, o, i); return r.getDate() == i && r.getMonth() == o && r.getFullYear() == n}; class ge {static save (e, t) {return !(!e || !t) && (this._isLocalStorageSupported() ? (localStorage.setItem(e, "string" == typeof t ? t : JSON.stringify(t)), !0) : void 0)} static read (e) {if (!e) return !1; let t = null; if (this._isLocalStorageSupported() && (t = localStorage.getItem(e)), null != t) try {t = JSON.parse(t)} catch (e) {} return t} static remove (e) {return !!e && (this._isLocalStorageSupported() ? (localStorage.removeItem(e), !0) : void 0)} static removeCookie (e, t) {let i = e + "=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; t && (i = i + " domain=" + t + "; path=/"), document.cookie = i} static createCookie (e, t, i, o) {let n = "", r = ""; if (i) {const e = new Date; e.setTime(e.getTime() + 1e3 * i), n = "; expires=" + e.toGMTString()} o && (r = "; domain=" + o), t = encodeURIComponent(t), document.cookie = e + "=" + t + n + r + "; path=/"} static readCookie (e) {const t = e + "=", i = document.cookie.split(";"); for (let e = 0; e < i.length; e++) {let o = i[e]; for (; " " === o.charAt(0);)o = o.substring(1, o.length); if (0 == o.indexOf(t)) return decodeURIComponent(o.substring(t.length, o.length))} return null} static _isLocalStorageSupported () {return "localStorage" in window && null !== window.localStorage && "function" == typeof window.localStorage.setItem} static saveToLSorCookie (e, t) {if (null != t) try {this._isLocalStorageSupported() ? this.save(e, encodeURIComponent(JSON.stringify(t))) : e === b ? this.createCookie(e, encodeURIComponent(t), 0, window.location.hostname) : this.createCookie(e, encodeURIComponent(JSON.stringify(t)), 0, window.location.hostname), fe.globalCache[e] = t} catch (e) {} } static readFromLSorCookie (e) {let t; if (fe.globalCache.hasOwnProperty(e)) return fe.globalCache[e]; if (t = this._isLocalStorageSupported() ? this.read(e) : this.readCookie(e), null != t && ("function" != typeof t.trim || "" !== t.trim())) {let i; try {i = JSON.parse(decodeURIComponent(t))} catch (e) {i = decodeURIComponent(t)} return fe.globalCache[e] = i, i} } static createBroadCookie (e, t, i, o) {if (o) {let r = fe.broadDomain; if (null == r) {const s = o.split("."); let a = ""; for (let o = s.length - 1; o >= 0; o--) {if (a = 0 === o ? s[o] + a : "." + s[o] + a, this.readCookie(e)) {var n = "test_" + e + o; if (this.createCookie(n, t, 10, a), !this.readCookie(n)) continue; this.removeCookie(n, a)} this.createCookie(e, t, i, a); if (this.readCookie(e) == t) {r = a, fe.broadDomain = r; break} } } else this.createCookie(e, t, i, r)} else this.createCookie(e, t, i, o)} static getMetaProp (e) {const t = this.readFromLSorCookie(k); if (null != t) return t[e]} static setMetaProp (e, t) {if (this._isLocalStorageSupported()) {let i = this.readFromLSorCookie(k); null == i && (i = {}), void 0 === t ? delete i[e] : i[e] = t, this.saveToLSorCookie(k, i)} } static getAndClearMetaProp (e) {const t = this.getMetaProp(e); return this.setMetaProp(e, void 0), t} static setInstantDeleteFlagInK () {let e = this.readFromLSorCookie(m); null == e && (e = {}), e.flag = !0, this.saveToLSorCookie(m, e)} static backupEvent (e, t, i) {let o = this.readFromLSorCookie(S); void 0 === o && (o = {}), o[t] = {q: e}, this.saveToLSorCookie(S, o), i.debug("stored in ".concat(S, " reqNo : ").concat(t, " -> ").concat(e))} static removeBackup (e, t) {const i = this.readFromLSorCookie(S); null != i && void 0 !== i[e] && (t.debug("del event: ".concat(e, " data-> ").concat(i[e].q)), delete i[e], this.saveToLSorCookie(S, i))} } const fe = {globalCache: {gcookie: null, REQ_N: 0, RESP_N: 0}, LRU_CACHE: null, globalProfileMap: void 0, globalEventsMap: void 0, blockRequest: !1, isOptInRequest: !1, broadDomain: null, webPushEnabled: null, campaignDivMap: {}, currentSessionId: null, wiz_counter: 0, notifApi: {notifEnabledFromApi: !1}, unsubGroups: [], updatedCategoryLong: null, inbox: null, isPrivacyArrPushed: !1, privacyArray: [], offline: !1, location: null, dismissSpamControl: !1, globalUnsubscribe: !0, flutterVersion: null, variableStore: {}, pushConfig: null}; var ve = t("keyOrder"), be = t("deleteFromObject"); class me {constructor(e) {Object.defineProperty(this, be, {value: ye}), Object.defineProperty(this, ve, {writable: !0, value: void 0}), this.max = e; let t = ge.readFromLSorCookie(_); if (t) {const e = {}; i(this, ve)[ve] = [], t = t.cache; for (const o in t) t.hasOwnProperty(o) && (e[t[o][0]] = t[o][1], i(this, ve)[ve].push(t[o][0])); this.cache = e} else this.cache = {}, i(this, ve)[ve] = []} get (e) {const t = this.cache[e]; return t && (this.cache = i(this, be)[be](e, this.cache), this.cache[e] = t, i(this, ve)[ve].push(e)), this.saveCacheToLS(this.cache), t} set (e, t) {const o = this.cache[e], n = i(this, ve)[ve]; null != o ? this.cache = i(this, be)[be](e, this.cache) : n.length === this.max && (this.cache = i(this, be)[be](n[0], this.cache)), this.cache[e] = t, i(this, ve)[ve][i(this, ve)[ve] - 1] !== e && i(this, ve)[ve].push(e), this.saveCacheToLS(this.cache)} saveCacheToLS (e) {const t = [], o = i(this, ve)[ve]; for (const i in o) if (o.hasOwnProperty(i)) {const n = []; n.push(o[i]), n.push(e[o[i]]), t.push(n)} ge.saveToLSorCookie(_, {cache: t})} getKey (e) {if (null === e) return null; const t = i(this, ve)[ve]; for (const i in t) if (t.hasOwnProperty(i) && this.cache[t[i]] === e) return t[i]; return null} getSecondLastKey () {const e = i(this, ve)[ve]; return null != e && e.length > 1 ? e[e.length - 2] : -1} getLastKey () {const e = i(this, ve)[ve].length; if (e) return i(this, ve)[ve][e - 1]} } var ye = function (e, t) {const o = JSON.parse(JSON.stringify(i(this, ve)[ve])), n = {}; let r; for (const i in o) o.hasOwnProperty(i) && (o[i] !== e ? n[o[i]] = t[o[i]] : r = i); return o.splice(r, 1), i(this, ve)[ve] = JSON.parse(JSON.stringify(o)), n}, we = t("logger"), Ce = t("request"), ke = t("device"), xe = t("session"); class Ie {constructor(e) {let {logger: t, request: o, device: n, session: r} = e; Object.defineProperty(this, we, {writable: !0, value: void 0}), Object.defineProperty(this, Ce, {writable: !0, value: void 0}), Object.defineProperty(this, ke, {writable: !0, value: void 0}), Object.defineProperty(this, xe, {writable: !0, value: void 0}), i(this, we)[we] = t, i(this, Ce)[Ce] = o, i(this, ke)[ke] = n, i(this, xe)[xe] = r} s (e, t, o, n, r) {let s = !1, a = !1; if (window.isOULInProgress && (o || "undefined" !== n && n === window.oulReqN) && (window.isOULInProgress = !1, s = !0), void 0 === n && (n = 0), ge.removeBackup(n, i(this, we)[we]), n > fe.globalCache.REQ_N) return; if (se(i(this, ke)[ke].gcookie) || e && (a = !0), !se(i(this, ke)[ke].gcookie) || o || "boolean" == typeof r) {const n = i(this, xe)[xe].getSessionCookieObject(); if (window.isOULInProgress || n.s && t < n.s) return; if (i(this, we)[we].debug("Cookie was ".concat(i(this, ke)[ke].gcookie, " set to ").concat(e)), i(this, ke)[ke].gcookie = e, se(i(this, ke)[ke].gcookie) || ge.getAndClearMetaProp(E), e && ge._isLocalStorageSupported()) {null == fe.LRU_CACHE && (fe.LRU_CACHE = new me(100)); const t = ge.readFromLSorCookie(m); let n; null != t && t.id && (n = fe.LRU_CACHE.cache[t.id], o && (n || (ge.saveToLSorCookie(j, !0), fe.LRU_CACHE.set(t.id, e)))), ge.saveToLSorCookie(b, e); const r = fe.LRU_CACHE.getSecondLastKey(); if (ge.readFromLSorCookie(j) && -1 !== r) {const e = fe.LRU_CACHE.cache[r]; i(this, Ce)[Ce].unregisterTokenForGuid(e)} } ge.createBroadCookie(b, e, A, window.location.hostname), ge.saveToLSorCookie(b, e)} ge._isLocalStorageSupported() && i(this, xe)[xe].manageSession(t); const l = i(this, xe)[xe].getSessionCookieObject(); (void 0 === l.s || l.s <= t) && (l.s = t, l.t = de(), i(this, xe)[xe].setSessionCookieObject(l)), se(i(this, ke)[ke].gcookie) && (fe.blockRequest = !1), !s && !a || i(this, Ce)[Ce].processingBackup || i(this, Ce)[Ce].processBackupEvents(), fe.globalCache.RESP_N = n} } var Me = t("logger"); class Se {constructor(e) {let {logger: t} = e; Object.defineProperty(this, Me, {writable: !0, value: void 0}), this.gcookie = void 0, i(this, Me)[Me] = t, this.gcookie = this.getGuid()} getGuid () {let e = null; if (se(this.gcookie)) return this.gcookie; if (ge._isLocalStorageSupported()) {const t = ge.read(b); if (se(t)) {try {e = JSON.parse(decodeURIComponent(t))} catch (o) {i(this, Me)[Me].debug("Cannot parse Gcookie from localstorage - must be encoded " + t), 32 === t.length ? (e = t, ge.saveToLSorCookie(b, t)) : i(this, Me)[Me].error("Illegal guid " + t)} se(e) && ge.createBroadCookie(b, e, A, window.location.hostname)} } return se(e) || (e = ge.readCookie(b), !se(e) || 0 !== e.indexOf("%") && 0 !== e.indexOf("'") && 0 !== e.indexOf('"') || (e = null), se(e) && ge.saveToLSorCookie(b, e)), e} } const Pe = "This property has been ignored.", Oe = "CleverTap error:", Ee = "".concat(Oe, " Incorrect embed script."), _e = "".concat(Oe, " Event structure not valid. ").concat(Pe), De = "".concat(Oe, " Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ").concat(Pe), Ae = "".concat(Oe, " Employed value should be either Y or N. ").concat(Pe), Le = "".concat(Oe, " Married value should be either Y or N. ").concat(Pe), Te = "".concat(Oe, " Education value should be either School, College or Graduate. ").concat(Pe), Ne = "".concat(Oe, " Age value should be a number. ").concat(Pe), ze = "".concat(Oe, " DOB value should be a Date Object"), je = "".concat(Oe, " setEnum(value). value should be a string or a number"), Re = "".concat(Oe, " Phone number should be formatted as +[country code][number]"); let Be; const Ue = e => {if (te(e)) {for (var t in e) if (e.hasOwnProperty(t)) {if (te(e[t]) || Array.isArray(e[t])) return !1; ie(e[t]) && (e[t] = ue(e[t]))} return !0} return !1}, Fe = (e, t) => {if (te(e)) {for (var i in e) if (e.hasOwnProperty(i)) if ("Items" === i) {if (!Array.isArray(e[i])) return !1; for (var o in e[i].length > 50 && t.reportError(522, "Charged Items exceed 50 limit. Actual count: " + e[i].length), e[i]) if (e[i].hasOwnProperty(o) && (!te(e[i][o]) || !Ue(e[i][o]))) return !1} else {if (te(e[i]) || Array.isArray(e[i])) return !1; ie(e[i]) && (e[i] = ue(e[i]))} if (ee(e[f]) || re(e[f])) {const i = e[f] + ""; if (void 0 === Be && (Be = ge.readFromLSorCookie(v)), void 0 !== Be && Be.trim() === i.trim()) return t.error("Duplicate charged Id - Dropped" + e), !1; Be = i, ge.saveToLSorCookie(v, i)} return !0} return !1}; var We = t("logger"), Ve = t("oldValues"), qe = t("request"), Ge = t("isPersonalisationActive"), He = t("processEventArray"); class Ke extends Array {constructor(e, t) {let {logger: o, request: n, isPersonalisationActive: r} = e; super(), Object.defineProperty(this, He, {value: Ze}), Object.defineProperty(this, We, {writable: !0, value: void 0}), Object.defineProperty(this, Ve, {writable: !0, value: void 0}), Object.defineProperty(this, qe, {writable: !0, value: void 0}), Object.defineProperty(this, Ge, {writable: !0, value: void 0}), i(this, We)[We] = o, i(this, Ve)[Ve] = t, i(this, qe)[qe] = n, i(this, Ge)[Ge] = r} push () {if (ge.readFromLSorCookie(I)) {for (var e = arguments.length, t = new Array(e), o = 0; o < e; o++)t[o] = arguments[o]; return i(this, He)[He](t), 0} i(this, We)[We].error("Account ID is not set")} _processOldValues () {i(this, Ve)[Ve] && i(this, He)[He](i(this, Ve)[Ve]), i(this, Ve)[Ve] = null} getDetails (e) {if (!i(this, Ge)[Ge]()) return; if (void 0 === fe.globalEventsMap && (fe.globalEventsMap = ge.readFromLSorCookie(C)), void 0 === fe.globalEventsMap) return; const t = fe.globalEventsMap[e], o = {}; return void 0 !== t ? (o.firstTime = new Date(1e3 * t[1]), o.lastTime = new Date(1e3 * t[2]), o.count = t[0], o) : void 0} } var Ze = function (e) {if (Array.isArray(e)) for (; e.length > 0;) {var t = e.shift(); if (!ee(t)) {i(this, We)[We].error(_e); continue} if (t.length > 1024 && (t = t.substring(0, 1024), i(this, We)[We].reportError(510, t + "... length exceeded 1024 chars. Trimmed.")), X.includes(t)) {i(this, We)[We].reportError(513, t + " is a restricted system event. It cannot be used as an event name."); continue} const o = {type: "event"}; if (o.evtName = le(t, u), 0 !== e.length) {const n = e.shift(); if (te(n)) {if ("Charged" === t) {if (!Fe(n, i(this, We)[We])) {i(this, We)[We].reportError(511, "Charged event structure invalid. Not sent."); continue} } else if (!Ue(n)) {i(this, We)[We].reportError(512, t + " event structure invalid. Not sent."); continue} o.evtData = n} else e.unshift(n)} i(this, qe)[qe].processEvent(o)} }; const Je = e => {const t = {}, i = e.indexOf("?"); if (i > 1) {const o = e.substring(i + 1); let n; const r = /\+/g, s = /([^&=]+)=?([^&]*)/g, a = function (e) {let t = e.replace(r, " "); try {t = decodeURIComponent(t)} catch (e) {} return t}; for (n = s.exec(o); n;)t[a(n[1])] = a(n[2]), n = s.exec(o)} return t}, Qe = (e, t, i) => e + "&" + t + "=" + encodeURIComponent(i), Ye = () => window.location.hostname, $e = (e, t) => (t && "function" == typeof t.debug && t.debug("dobj:" + e), et(e)), Xe = (() => {let e = "", t = 0; for (t = 0; t <= 25; t++)e += String.fromCharCode(t + 65); for (t = 0; t <= 25; t++)e += String.fromCharCode(t + 97); for (t = 0; t < 10; t++)e += t; return e + "+/="})(), et = e => {if (null == e) return ""; var t, i, o, n, r, s, a, l = "", c = 0; for (e = (e => {if (null == e) return ""; let t, i, o, n = {}, r = {}, s = "", a = "", l = "", c = 2, d = 3, u = 2, h = "", p = 0, g = 0, f = String.fromCharCode; for (o = 0; o < e.length; o += 1)if (s = e.charAt(o), Object.prototype.hasOwnProperty.call(n, s) || (n[s] = d++, r[s] = !0), a = l + s, Object.prototype.hasOwnProperty.call(n, a)) l = a; else {if (Object.prototype.hasOwnProperty.call(r, l)) {if (l.charCodeAt(0) < 256) {for (t = 0; t < u; t++)p <<= 1, 15 == g ? (g = 0, h += f(p), p = 0) : g++; for (i = l.charCodeAt(0), t = 0; t < 8; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1} else {for (i = 1, t = 0; t < u; t++)p = p << 1 | i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i = 0; for (i = l.charCodeAt(0), t = 0; t < 16; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1} c--, 0 == c && (c = Math.pow(2, u), u++), delete r[l]} else for (i = n[l], t = 0; t < u; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1; c--, 0 == c && (c = Math.pow(2, u), u++), n[a] = d++, l = String(s)} if ("" !== l) {if (Object.prototype.hasOwnProperty.call(r, l)) {if (l.charCodeAt(0) < 256) {for (t = 0; t < u; t++)p <<= 1, 15 == g ? (g = 0, h += f(p), p = 0) : g++; for (i = l.charCodeAt(0), t = 0; t < 8; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1} else {for (i = 1, t = 0; t < u; t++)p = p << 1 | i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i = 0; for (i = l.charCodeAt(0), t = 0; t < 16; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1} c--, 0 == c && (c = Math.pow(2, u), u++), delete r[l]} else for (i = n[l], t = 0; t < u; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1; c--, 0 == c && (c = Math.pow(2, u), u++)} for (i = 2, t = 0; t < u; t++)p = p << 1 | 1 & i, 15 == g ? (g = 0, h += f(p), p = 0) : g++, i >>= 1; for (; ;) {if (p <<= 1, 15 == g) {h += f(p); break} g++} return h})(e); c < 2 * e.length;)c % 2 == 0 ? (t = e.charCodeAt(c / 2) >> 8, i = 255 & e.charCodeAt(c / 2), o = c / 2 + 1 < e.length ? e.charCodeAt(c / 2 + 1) >> 8 : NaN) : (t = 255 & e.charCodeAt((c - 1) / 2), (c + 1) / 2 < e.length ? (i = e.charCodeAt((c + 1) / 2) >> 8, o = 255 & e.charCodeAt((c + 1) / 2)) : i = o = NaN), c += 3, n = t >> 2, r = (3 & t) << 4 | i >> 4, s = (15 & i) << 2 | o >> 6, a = 63 & o, isNaN(i) ? s = a = 64 : isNaN(o) && (a = 64), l = l + Xe.charAt(n) + Xe.charAt(r) + Xe.charAt(s) + Xe.charAt(a); return l}; var tt = t("fireRequest"), it = t("dropRequestDueToOptOut"), ot = t("addUseIPToRequest"), nt = t("addARPToRequest"); class rt {constructor() {this.networkRetryCount = 0, this.minDelayFrequency = 0} static fireRequest (e, t, o, n) {i(this, tt)[tt](e, 1, t, o, n)} getDelayFrequency () {if (this.logger.debug("Network retry #" + this.networkRetryCount), this.networkRetryCount < 10) return this.logger.debug(this.account.id, "Failure count is " + this.networkRetryCount + ". Setting delay frequency to 1s"), this.minDelayFrequency = G, this.minDelayFrequency; if (null == this.account.region) return this.logger.debug(this.account.id, "Setting delay frequency to 1s"), G; {const e = 1e3 * (Math.floor(10 * Math.random()) + 1); return this.minDelayFrequency += e, this.minDelayFrequency < 6e5 ? (this.logger.debug(this.account.id, "Setting delay frequency to " + this.minDelayFrequency), this.minDelayFrequency) : (this.minDelayFrequency = G, this.logger.debug(this.account.id, "Setting delay frequency to " + this.minDelayFrequency), this.minDelayFrequency)} } } rt.logger = void 0, rt.device = void 0, rt.account = void 0, Object.defineProperty(rt, tt, {value: function (e, t, o, n, r) {var s, a; if (i(this, it)[it]()) return void this.logger.debug("req dropped due to optout cookie: " + this.device.gcookie); if (se(this.device.gcookie) || (fe.blockRequest = !0), r && r === H) !se(this.device.gcookie) && fe.globalCache.RESP_N < fe.globalCache.REQ_N - 1 && setTimeout((() => {this.logger.debug("retrying fire request for url: ".concat(e, ", tries: ").concat(this.networkRetryCount)), i(this, tt)[tt](e, void 0, o, n)}), this.getDelayFrequency()); else if (!se(this.device.gcookie) && fe.globalCache.RESP_N < fe.globalCache.REQ_N - 1 && t < 200) return void setTimeout((() => {this.logger.debug("retrying fire request for url: ".concat(e, ", tries: ").concat(t)), i(this, tt)[tt](e, t + 1, o, n)}), 50); if (n ? window.isOULInProgress = !0 : (se(this.device.gcookie) && (e = Qe(e, "gc", this.device.gcookie)), e = i(this, nt)[nt](e, o)), e = Qe(e, "tries", t), e = i(this, ot)[ot](e), e = Qe(e, "r", (new Date).getTime()), (null === (s = window.clevertap) || void 0 === s ? void 0 : s.hasOwnProperty("plugin")) || (null === (a = window.wizrocket) || void 0 === a ? void 0 : a.hasOwnProperty("plugin"))) {const t = window.clevertap.plugin || window.wizrocket.plugin; e = Qe(e, "ct_pl", t)} -1 !== e.indexOf("chrome-extension:") && (e = e.replace("chrome-extension:", "https:")); for (var l = document.getElementsByClassName("ct-jp-cb"); l[0] && l[0].parentNode;)l[0].parentNode.removeChild(l[0]); const c = document.createElement("script"); c.setAttribute("type", "text/javascript"), c.setAttribute("src", e), c.setAttribute("class", "ct-jp-cb"), c.setAttribute("rel", "nofollow"), c.async = !0, document.getElementsByTagName("head")[0].appendChild(c), this.logger.debug("req snt -> url: " + e)}}), Object.defineProperty(rt, it, {value: function () {return !fe.isOptInRequest && se(this.device.gcookie) && ee(this.device.gcookie) ? ":OO" === this.device.gcookie.slice(-3) : (fe.isOptInRequest = !1, !1)}}), Object.defineProperty(rt, ot, {value: function (e) {var t = ge.getMetaProp(E); return "boolean" != typeof t && (t = !1), Qe(e, E, t ? "true" : "false")}}), Object.defineProperty(rt, nt, {value: function (e, t) {if (!0 === t) {const t = {skipResARP: !0}; return Qe(e, "arp", $e(JSON.stringify(t), this.logger))} return ge._isLocalStorageSupported() && void 0 !== localStorage.getItem(M) && null !== localStorage.getItem(M) ? Qe(e, "arp", $e(JSON.stringify(ge.readFromLSorCookie(M)), this.logger)) : e}}); const st = () => {let e = {}; if (ge._isLocalStorageSupported()) {let t = ge.read(y); null != t ? (t = JSON.parse(decodeURIComponent(t).replace(p, '"')), t.hasOwnProperty("global") ? e.wp = t : e = t) : e = {}} return e}, at = e => {if (ge._isLocalStorageSupported()) {const t = {...st(), ...e}, i = JSON.stringify(t); ge.save(y, encodeURIComponent(i)), lt()} }, lt = () => {if (ge._isLocalStorageSupported()) {let i = ge.read(b); if (se(i)) try {i = JSON.parse(decodeURIComponent(ge.read(b))); const o = ge.read(w) ? JSON.parse(decodeURIComponent(ge.read(w))) : {}; if (i && ge._isLocalStorageSupported()) {var e = {}, t = st(); Object.keys(t).forEach((n => {const r = i in o && Object.keys(o[i]).length && o[i][n] ? o[i][n] : {}, s = t[n].global, a = ce(), l = t[n][a]; if (void 0 !== s) {const e = Object.keys(s); for (const t in e) {let i = []; if (e.hasOwnProperty(t)) {let o = 0, n = 0; const a = e[t]; if ("tc" === a) continue; void 0 !== l && void 0 !== l[a] && (o = l[a]), void 0 !== s && void 0 !== s[a] && (n = s[a]), i = [a, o, n], r[a] = i} } } e = {...e, [n]: r}})), o[i] = e, ge.save(w, encodeURIComponent(JSON.stringify(o)))} } catch (e) {console.error("Invalid clevertap Id " + e)} } }, ct = () => {const e = JSON.parse(decodeURIComponent(ge.read(b))); let t = {}; if (ge._isLocalStorageSupported()) {let i = {}; t = st(); const o = ge.read(w), n = o ? decodeURIComponent(o) : null, r = n ? JSON.parse(n) : null, s = e && null != o && r && r[e] && r[e].wp ? Object.values(r[e].wp) : [], a = e && null != o && r && r[e] && r[e].wi ? Object.values(r[e].wi) : [], l = ce(); let c = 0, d = 0; return t.wp && t.wp[l] && "undefined" !== t.wp[l].tc && (c = t.wp[l].tc), t.wi && t.wi[l] && "undefined" !== t.wi[l].tc && (d = t.wi[l].tc), i = {wmp: c, wimp: d, tlc: s, witlc: a}, i} }, dt = (e, t) => {let {logger: i} = t, o = !1; if (te(e)) for (const t in e) if (e.hasOwnProperty(t)) {o = !0; let n = e[t]; if (null == n) {delete e[t]; continue} "Gender" !== t || n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/) || (o = !1, i.error(De)), "Employed" !== t || n.match(/^Y$|^N$/) || (o = !1, i.error(Ae)), "Married" !== t || n.match(/^Y$|^N$/) || (o = !1, i.error(Le)), "Education" !== t || n.match(/^School$|^College$|^Graduate$/) || (o = !1, i.error(Te)), "Age" === t && null != n && (ne(n) ? e.Age = +n : (o = !1, i.error(Ne))), "DOB" === t ? (/^\$D_/.test(n) && 11 === (n + "").length || ie(n) || (o = !1, i.error(ze)), ie(n) && (e[t] = ue(n))) : ie(n) && (e[t] = ue(n)), "Phone" !== t || oe(n) || (n.length > 8 && "+" === n.charAt(0) ? (n = n.substring(1, n.length), ne(n) ? e.Phone = +n : (o = !1, i.error(Re + ". Removed."))) : (o = !1, i.error(Re + ". Removed."))), o || delete e[t]} return o}, ut = e => {const t = {}; t.Name = e.name, null != e.id && (t.FBID = e.id + ""), "male" === e.gender ? t.Gender = "M" : "female" === e.gender ? t.Gender = "F" : t.Gender = "O"; null != e.relationship_status && (t.Married = "N", "Married" === e.relationship_status && (t.Married = "Y")); const i = function (e) {if (null != e) {let t = "", i = ""; for (let o = 0; o < e.length; o++) {const n = e[o]; if (null != n.type) {const e = n.type; if ("Graduate School" === e) return "Graduate"; "College" === e ? t = "1" : "High School" === e && (i = "1")} } if ("1" === t) return "College"; if ("1" === i) return "School"} }(e.education); null != i && (t.Education = i); const o = null != e.work ? e.work.length : 0; if (t.Employed = o > 0 ? "Y" : "N", null != e.email && (t.Email = e.email), null != e.birthday) {const i = e.birthday.split("/"); t.DOB = he(i[2] + i[0] + i[1])} return t}, ht = (e, t) => {let {logger: i} = t; const o = {}; if (null != e.displayName && (o.Name = e.displayName), null != e.id && (o.GPID = e.id + ""), null != e.gender && ("male" === e.gender ? o.Gender = "M" : "female" === e.gender ? o.Gender = "F" : "other" === e.gender && (o.Gender = "O")), null != e.image && !1 === e.image.isDefault && (o.Photo = e.image.url.split("?sz")[0]), null != e.emails) for (let t = 0; t < e.emails.length; t++) {const i = e.emails[t]; "account" === i.type && (o.Email = i.value)} if (null != e.organizations) {o.Employed = "N"; for (let t = 0; t < e.organizations.length; t++) {"work" === e.organizations[t].type && (o.Employed = "Y")} } if (null != e.birthday) {const t = e.birthday.split("-"); o.DOB = he(t[0] + t[1] + t[2])} return null != e.relationshipStatus && (o.Married = "N", "married" === e.relationshipStatus && (o.Married = "Y")), i.debug("gplus usr profile " + JSON.stringify(o)), o}, pt = (e, t) => {if (ge._isLocalStorageSupported()) {if (null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x), null == fe.globalProfileMap && (fe.globalProfileMap = {})), null != e._custom) {const t = e._custom; for (const i in t) t.hasOwnProperty(i) && (e[i] = t[i]); delete e._custom} for (const i in e) if (e.hasOwnProperty(i)) {if (fe.globalProfileMap.hasOwnProperty(i) && !t) continue; fe.globalProfileMap[i] = e[i]} null != fe.globalProfileMap._custom && delete fe.globalProfileMap._custom, ge.saveToLSorCookie(x, fe.globalProfileMap)} }, gt = (e, t, i) => {if (null != e && "-1" !== e && ge._isLocalStorageSupported()) {const t = st(); let o = t.wp[i]; null == o && (o = {}, t[i] = o), o[e] = "dnd", at(t)} if (null != fe.campaignDivMap) {const t = fe.campaignDivMap[e]; null != t && (document.getElementById(t).remove(), "intentPreview" === t ? null != document.getElementById("intentOpacityDiv") && document.getElementById("intentOpacityDiv").remove() : "wizParDiv0" === t ? null != document.getElementById("intentOpacityDiv0") && document.getElementById("intentOpacityDiv0").remove() : "wizParDiv2" === t && null != document.getElementById("intentOpacityDiv2") && document.getElementById("intentOpacityDiv2").remove())} }; var ft = t("logger"), vt = t("request"), bt = t("account"), mt = t("oldValues"), yt = t("isPersonalisationActive"), wt = t("processProfileArray"); class Ct extends Array {constructor(e, t) {let {logger: o, request: n, account: r, isPersonalisationActive: s} = e; super(), Object.defineProperty(this, wt, {value: kt}), Object.defineProperty(this, ft, {writable: !0, value: void 0}), Object.defineProperty(this, vt, {writable: !0, value: void 0}), Object.defineProperty(this, bt, {writable: !0, value: void 0}), Object.defineProperty(this, mt, {writable: !0, value: void 0}), Object.defineProperty(this, yt, {writable: !0, value: void 0}), i(this, ft)[ft] = o, i(this, vt)[vt] = n, i(this, bt)[bt] = r, i(this, mt)[mt] = t, i(this, yt)[yt] = s} push () {if (ge.readFromLSorCookie(I)) {for (var e = arguments.length, t = new Array(e), o = 0; o < e; o++)t[o] = arguments[o]; return i(this, wt)[wt](t), 0} i(this, ft)[ft].error("Account ID is not set")} _processOldValues () {i(this, mt)[mt] && i(this, wt)[wt](i(this, mt)[mt]), i(this, mt)[mt] = null} getAttribute (e) {if (i(this, yt)[yt]()) return null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x)), null != fe.globalProfileMap ? fe.globalProfileMap[e] : void 0} _handleIncrementDecrementValue (e, t, o) {var n; if (null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x)), null != fe.globalProfileMap || (null === (n = fe.globalProfileMap) || void 0 === n ? void 0 : n.hasOwnProperty(e))) if (!t || "number" != typeof t || t <= 0) console.error("Value should be a number greater than 0"); else {fe.globalProfileMap[e] = o === B ? fe.globalProfileMap[e] + t : fe.globalProfileMap[e] - t, ge.saveToLSorCookie(x, fe.globalProfileMap); let n = {}; const r = {}; n.type = "profile", r[e] = {[o]: t}, null == r.tz && (r.tz = (new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]), n.profile = r, n = i(this, vt)[vt].addSystemDataToObject(n, !0), i(this, vt)[vt].addFlags(n); const s = $e(JSON.stringify(n), i(this, ft)[ft]); let a = i(this, bt)[bt].dataPostURL; a = Qe(a, "type", D), a = Qe(a, "d", s), i(this, vt)[vt].saveAndFireRequest(a, fe.blockRequest)} else console.error("Kindly create profile with required proprty to increment/decrement.")} _handleMultiValueSet (e, t, i) {const o = []; for (let e = 0; e < t.length; e++)"number" != typeof t[e] || o.includes(t[e]) ? "string" != typeof t[e] || o.includes(t[e].toLowerCase()) ? console.error("array supports only string or number type values") : o.push(t[e].toLowerCase()) : o.push(t[e]); var n; null == fe.globalProfileMap && (fe.globalProfileMap = null !== (n = ge.readFromLSorCookie(x)) && void 0 !== n ? n : {}); fe.globalProfileMap[e] = o, ge.saveToLSorCookie(x, fe.globalProfileMap), this.sendMultiValueData(e, t, i)} _handleMultiValueAdd (e, t, o) {null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x) || {}); const n = fe.globalProfileMap[e], r = Array.isArray(n) ? n : null != n ? [n] : [], s = e => {const t = "number" == typeof e ? e : e.toLowerCase(); r.includes(t) || r.push(t)}; if (Array.isArray(t)) t.forEach((e => {"string" == typeof e || "number" == typeof e ? s(e) : i(this, ft)[ft].error("Array supports only string or number type values")})); else {if ("string" != typeof t && "number" != typeof t) return void i(this, ft)[ft].error("Unsupported value type"); s(t)} fe.globalProfileMap[e] = r, ge.saveToLSorCookie(x, fe.globalProfileMap), this.sendMultiValueData(e, t, o)} _handleMultiValueRemove (e, t, o) {if (null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x) || {}), !fe.globalProfileMap.hasOwnProperty(e)) return void i(this, ft)[ft].error("The property ".concat(e, " does not exist.")); const n = t => {const i = fe.globalProfileMap[e].indexOf(t); -1 !== i && fe.globalProfileMap[e].splice(i, 1)}; if (Array.isArray(t)) t.forEach(n); else {if ("string" != typeof t && "number" != typeof t) return void i(this, ft)[ft].error("Unsupported propVal type"); n(t)} 0 === fe.globalProfileMap[e].length && delete fe.globalProfileMap[e], ge.saveToLSorCookie(x, fe.globalProfileMap), this.sendMultiValueData(e, t, o)} _handleMultiValueDelete (e, t) {var o; null == fe.globalProfileMap && (fe.globalProfileMap = ge.readFromLSorCookie(x)), (null == fe || null === (o = fe.globalProfileMap) || void 0 === o ? void 0 : o.hasOwnProperty(e)) ? delete fe.globalProfileMap[e] : i(this, ft)[ft].error("The property ".concat(e, " does not exist.")), ge.saveToLSorCookie(x, fe.globalProfileMap), this.sendMultiValueData(e, null, t)} sendMultiValueData (e, t, o) {let n = {}; const r = {}; n.type = "profile", r[e] = {[o]: o === W || t}, null == r.tz && (r.tz = (new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]), n.profile = r, n = i(this, vt)[vt].addSystemDataToObject(n, !0), i(this, vt)[vt].addFlags(n); const s = $e(JSON.stringify(n), i(this, ft)[ft]); let a = i(this, bt)[bt].dataPostURL; a = Qe(a, "type", D), a = Qe(a, "d", s), i(this, vt)[vt].saveAndFireRequest(a, fe.blockRequest)} } var kt = function (e) {if (Array.isArray(e) && e.length > 0) for (const t in e) if (e.hasOwnProperty(t)) {const o = e[t]; let n, r = {}; if (null != o.Site) {if (n = o.Site, oe(n) || !dt(n, {logger: i(this, ft)[ft]})) return } else if (null != o.Facebook) {const e = o.Facebook; oe(e) || e.error || (n = ut(e))} else if (null != o["Google Plus"]) {const e = o["Google Plus"]; oe(e) || e.error || (n = ht(e, {logger: i(this, ft)[ft]}))} if (null != n && !oe(n)) {r.type = "profile", null == n.tz && (n.tz = (new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]), r.profile = n, pt(n, !0), r = i(this, vt)[vt].addSystemDataToObject(r, void 0), i(this, vt)[vt].addFlags(r); const e = $e(JSON.stringify(r), i(this, ft)[ft]); let t = i(this, bt)[bt].dataPostURL; t = Qe(t, "type", D), t = Qe(t, "d", e), i(this, vt)[vt].saveAndFireRequest(t, fe.blockRequest)} } }, xt = t("request"), It = t("logger"), Mt = t("account"), St = t("session"), Pt = t("oldValues"), Ot = t("device"), Et = t("processOUL"), _t = t("handleCookieFromCache"), Dt = t("deleteUser"), At = t("processLoginArray"); class Lt extends Array {constructor(e, t) {let {request: o, account: n, session: r, logger: s, device: a} = e; super(), Object.defineProperty(this, At, {value: jt}), Object.defineProperty(this, Dt, {value: zt}), Object.defineProperty(this, _t, {value: Nt}), Object.defineProperty(this, Et, {value: Tt}), Object.defineProperty(this, xt, {writable: !0, value: void 0}), Object.defineProperty(this, It, {writable: !0, value: void 0}), Object.defineProperty(this, Mt, {writable: !0, value: void 0}), Object.defineProperty(this, St, {writable: !0, value: void 0}), Object.defineProperty(this, Pt, {writable: !0, value: void 0}), Object.defineProperty(this, Ot, {writable: !0, value: void 0}), i(this, xt)[xt] = o, i(this, Mt)[Mt] = n, i(this, St)[St] = r, i(this, It)[It] = s, i(this, Pt)[Pt] = t, i(this, Ot)[Ot] = a} clear () {i(this, It)[It].debug("clear called. Reset flag has been set."), i(this, Dt)[Dt](), ge.setMetaProp(g, !0)} push () {for (var e = arguments.length, t = new Array(e), o = 0; o < e; o++)t[o] = arguments[o]; return i(this, At)[At](t), 0} _processOldValues () {i(this, Pt)[Pt] && i(this, At)[At](i(this, Pt)[Pt]), i(this, Pt)[Pt] = null} } var Tt = function (e) {let t = !0; ge.saveToLSorCookie(j, t); const o = e => {let o = ge.readFromLSorCookie(m); const n = ge.readFromLSorCookie(b); let r; if (null == o) o = {}, r = e; else {r = o.id; let s = !1, a = !1; if (null == r && (r = e[0], s = !0), null == fe.LRU_CACHE && ge._isLocalStorageSupported() && (fe.LRU_CACHE = new me(100)), s) null != n && (fe.LRU_CACHE.set(r, n), fe.blockRequest = !1); else for (const t in e) if (e.hasOwnProperty(t)) {const i = e[t]; if (fe.LRU_CACHE.cache[i]) {r = i, a = !0; break} } if (a) {r !== fe.LRU_CACHE.getLastKey() ? i(this, _t)[_t]() : (t = !1, ge.saveToLSorCookie(j, t)); const e = fe.LRU_CACHE.get(r); fe.LRU_CACHE.set(r, e), ge.saveToLSorCookie(b, e), i(this, Ot)[Ot].gcookie = e; const o = fe.LRU_CACHE.getSecondLastKey(); if (ge.readFromLSorCookie(j) && -1 !== o) {const e = fe.LRU_CACHE.cache[o]; i(this, xt)[xt].unregisterTokenForGuid(e)} } else s ? null != n && (i(this, Ot)[Ot].gcookie = n, ge.saveToLSorCookie(b, n), t = !1) : this.clear(), ge.saveToLSorCookie(j, !1), r = e[0]} o.id = r, ge.saveToLSorCookie(m, o)}; if (Array.isArray(e) && e.length > 0) for (const n in e) if (e.hasOwnProperty(n)) {const r = e[n]; let s, a = {}; if (null != r.Site) {if (s = r.Site, oe(s) || !dt(s, {logger: i(this, It)[It]})) return } else if (null != r.Facebook) {const e = r.Facebook; oe(e) || e.error || (s = ut(e))} else if (null != r["Google Plus"]) {const e = r["Google Plus"]; oe(e) && !e.error && (s = ht(e, {logger: i(this, It)[It]}))} if (null != s && !oe(s)) {a.type = "profile", null == s.tz && (s.tz = (new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]), a.profile = s; const e = []; ge._isLocalStorageSupported() && (s.Identity && e.push(s.Identity), s.Email && e.push(s.Email), s.GPID && e.push("GP:" + s.GPID), s.FBID && e.push("FB:" + s.FBID), e.length > 0 && o(e)), pt(s, !0), a = i(this, xt)[xt].addSystemDataToObject(a, void 0), i(this, xt)[xt].addFlags(a), t && (a.isOUL = !0); const n = $e(JSON.stringify(a), i(this, It)[It]); let r = i(this, Mt)[Mt].dataPostURL; r = Qe(r, "type", D), r = Qe(r, "d", n), i(this, xt)[xt].saveAndFireRequest(r, fe.blockRequest, t)} } }, Nt = function () {fe.blockRequest = !1, console.debug("Block request is false"), ge._isLocalStorageSupported() && (delete localStorage.WZRK_PR, delete localStorage.WZRK_EV, delete localStorage.WZRK_META, delete localStorage.WZRK_ARP, delete localStorage.WZRK_CAMP, delete localStorage.WZRK_CHARGED_ID), ge.removeCookie(y, Ye()), ge.removeCookie(i(this, St)[St].cookieName, fe.broadDomain), ge.removeCookie(M, fe.broadDomain), i(this, St)[St].setSessionCookieObject("")}, zt = function () {fe.blockRequest = !0, i(this, It)[It].debug("Block request is true"), fe.globalCache = {gcookie: null, REQ_N: 0, RESP_N: 0}, ge._isLocalStorageSupported() && (delete localStorage.WZRK_G, delete localStorage.WZRK_K, delete localStorage.WZRK_PR, delete localStorage.WZRK_EV, delete localStorage.WZRK_META, delete localStorage.WZRK_ARP, delete localStorage.WZRK_CAMP, delete localStorage.WZRK_CHARGED_ID), ge.removeCookie(b, fe.broadDomain), ge.removeCookie(y, Ye()), ge.removeCookie(m, Ye()), ge.removeCookie(i(this, St)[St].cookieName, fe.broadDomain), ge.removeCookie(M, fe.broadDomain), i(this, Ot)[Ot].gcookie = null, i(this, St)[St].setSessionCookieObject("")}, jt = function (e) {if (Array.isArray(e) && e.length > 0) {const t = e.pop(); if (null != t && te(t) && (null != t.Site && Object.keys(t.Site).length > 0 || null != t.Facebook && Object.keys(t.Facebook).length > 0 || null != t["Google Plus"] && Object.keys(t["Google Plus"]).length > 0)) {ge.setInstantDeleteFlagInK(); try {i(this, Et)[Et]([t])} catch (e) {i(this, It)[It].debug(e)} } else i(this, It)[It].error("Profile object is in incorrect format")} }; class Rt extends HTMLElement {constructor() {super(), this._target = null, this._session = null, this.shadow = null, this.popup = null, this.container = null, this.resizeObserver = null, this.shadow = this.attachShadow({mode: "open"})} get target () {return this._target || ""} set target (e) {null === this._target && (this._target = e, this.renderImageOnlyPopup())} get session () {return this._session || ""} set session (e) {this._session = e} get msgId () {return this.target.wzrk_id} get pivotId () {return this.target.wzrk_pivot} get onClickUrl () {return this.target.display.onClickUrl} renderImageOnlyPopup () {const e = this.target.wzrk_id.split("_")[0], t = this.session.sessionId; this.shadow.innerHTML = this.getImageOnlyPopupContent(), this.popup = this.shadowRoot.getElementById("imageOnlyPopup"), this.container = this.shadowRoot.getElementById("container"), this.closeIcon = this.shadowRoot.getElementById("close"), this.popup.addEventListener("load", this.updateImageAndContainerWidth()), this.resizeObserver = new ResizeObserver((() => this.handleResize(this.popup, this.container))), this.resizeObserver.observe(this.popup), this.closeIcon.addEventListener("click", (() => {if (this.resizeObserver.unobserve(this.popup), document.getElementById("wzrkImageOnlyDiv").style.display = "none", this.remove(), null != e && "-1" !== e && ge._isLocalStorageSupported()) {const i = st(); let o = i.wp[t]; null == o && (o = {}, i[t] = o), o[e] = "dnd", at(i)} })), window.clevertap.renderNotificationViewed({msgId: this.msgId, pivotId: this.pivotId}), this.onClickUrl && this.popup.addEventListener("click", (() => {this.target.display.window ? window.open(this.onClickUrl, "_blank") : window.parent.location.href = this.onClickUrl, window.clevertap.renderNotificationClicked({msgId: this.msgId, pivotId: this.pivotId})}))} handleResize (e, t) {const i = this.getRenderedImageWidth(e); t.style.setProperty("width", "".concat(i, "px"))} getImageOnlyPopupContent () {return "\n ".concat(this.target.msgContent.css, "\n ").concat(this.target.msgContent.html, "\n ")} updateImageAndContainerWidth () {return () => {const e = this.getRenderedImageWidth(this.popup); this.popup.style.setProperty("width", "".concat(e, "px")), this.container.style.setProperty("width", "".concat(e, "px")), this.container.style.setProperty("height", "auto"), this.container.style.setProperty("position", "fixed"), this.popup.style.setProperty("visibility", "visible"), this.closeIcon.style.setProperty("visibility", "visible"), document.getElementById("wzrkImageOnlyDiv").style.visibility = "visible"}} getRenderedImageWidth (e) {const t = e.naturalWidth / e.naturalHeight; return e.height * t} } class Bt extends HTMLElement {constructor(e, t) {super(), this.wrapper = null, this.snackBar = null, this.shadow = this.attachShadow({mode: "open"}), this.config = e, this.message = t, this.renderMessage(t)} get pivotId () {return this.message.wzrk_pivot} get campaignId () {return this.message.wzrk_id} createEl (e, t, i) {const o = document.createElement(e); return o.setAttribute("id", t), o.setAttribute("part", i || t), o} renderMessage (e) {switch (this.wrapper = this.createEl("div", "messageWrapper"), e.templateType) {case "text-only": case "text-with-icon": case "text-with-icon-and-image": {const t = this.prepareBasicMessage(e.msg[0]); this.wrapper.appendChild(t)} }const t = this.createEl("div", "timeStamp"); if (t.innerHTML = "".concat(Zt(e.id.split("_")[1]), ""), !e.viewed) {const e = this.createEl("span", "unreadMarker"); t.appendChild(e)} this.wrapper.appendChild(t), this.shadow.appendChild(this.wrapper)} prepareBasicMessage (e) {const t = this.createEl("div", "message"); if (e.imageUrl) {const i = this.addImage(e.imageUrl, "mainImg"); t.appendChild(i)} const i = this.createEl("div", "iconTitleDescWrapper"); if (e.iconUrl) {const t = this.addImage(e.iconUrl, "iconImg"); i.appendChild(t)} const o = this.createEl("div", "titleDescWrapper"); if (e.title) {const t = this.createEl("div", "title"); t.innerText = e.title, o.appendChild(t)} if (e.description) {const t = this.createEl("div", "description"); t.innerText = e.description, o.appendChild(t)} if ((e.title || e.description) && i.appendChild(o), (e.iconUrl || e.title || e.description) && t.appendChild(i), e.buttons && e.buttons.length) {const i = this.addButtons(e.buttons); t.appendChild(i)} return t} addButtons () {let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; const t = this.createEl("div", "buttonsContainer"); let i = !1; return e.forEach(((e, o) => {const n = this.createEl("button", "button-".concat(o), "button"); n.innerText = e.text, o > 0 && (n.style.cssText += "margin-left: 2px;"), "copy" === e.action && (i = !0), t.appendChild(n)})), i && this.addSnackbar(t), t} addSnackbar (e) {this.snackBar = this.createEl("div", "snackbar-".concat(this.campaignId), "snackbar"), this.snackBar.innerHTML = Yt; const t = this.createEl("span", "snackbar-msg-".concat(this.campaignId), "snackbar-msg"); t.innerText = "Copied to clipboard", this.snackBar.appendChild(t), e.appendChild(this.snackBar)} addImage (e, t) {const i = this.createEl("div", "".concat(t, "Container")), o = this.createEl("img", t); return o.setAttribute("src", e), o.setAttribute("loading", "lazy"), i.appendChild(o), i} raiseClickedEvent (e, t) {switch (this.message.templateType) {case "text-only": case "text-with-icon": case "text-with-icon-and-image": this.raiseClickedForBasicTemplates(e, t)}} raiseClickedForBasicTemplates (e, t) {const i = this.message.msg[0], o = {msgId: this.campaignId, pivotId: this.pivotId}; if ("BUTTON" === e.tagName) {const t = e.id.split("-")[1], n = i.buttons[t]; o.kv = {wzrk_c2a: n.text}, "url" === n.action ? n.openUrlInNewTab ? window.open(n.url, "_blank") : window.location = n.url : "copy" === n.action && (window.focus(), navigator.clipboard.writeText(n.clipboardText), this.snackBar.style.setProperty("display", "flex", "important"), setTimeout((() => {this.snackBar.style.setProperty("display", "none", "important")}), 2e3))} else "CT-INBOX-MESSAGE" === e.tagName && i.onClickUrl && (i.openUrlInNewTab ? window.open(i.onClickUrl, "_blank") : window.location = i.onClickUrl); t ? console.log("Notifiction clicked event will be raised at run time with payload ::", o) : window.clevertap.renderNotificationClicked(o)} } class Ut extends HTMLElement {constructor(e) {super(), this.isInboxOpen = !1, this.isInboxFromFlutter = !1, this.selectedCategory = null, this.unviewedMessages = {}, this.unviewedCounter = 0, this.isPreview = !1, this.inboxConfigForPreview = {}, this.inboxSelector = null, this.inbox = null, this.emptyInboxMsg = null, this.inboxCard = null, this.unviewedBadge = null, this.observer = null, this.selectedCategoryRef = null, this.addClickListenerOnDocument = (() => e => {if (e.composedPath().includes(this.inbox)) {const t = e.path || e.composedPath && e.composedPath(); if (t.length) {const e = t[0].id; if ("closeInbox" === e) this.toggleInbox(); else if (e.startsWith("category-")) this.prevCategoryRef = this.selectedCategoryRef, this.selectedCategoryRef = t[0], this.updateActiveCategory(t[0].innerText); else {const e = t.filter((e => {var t; return (null === (t = e.id) || void 0 === t ? void 0 : t.startsWith("button-")) || "CT-INBOX-MESSAGE" === e.tagName})); if (e.length) {e[e.length - 1].raiseClickedEvent(e[0], this.isPreview)} } } } else (this.checkForWebInbox(e) || this.isInboxOpen) && (this.isInboxFromFlutter ? this.isInboxFromFlutter = !1 : this.toggleInbox(e))})(), this.setBadgeStyle = e => {if (null !== this.unviewedBadge) {this.unviewedBadge.innerText = e > 9 ? "9+" : e; const t = e > 0 && document.getElementById(this.config.inboxSelector); this.unviewedBadge.style.display = t ? "flex" : "none"} }, this.logger = e, this.shadow = this.attachShadow({mode: "open"})} get incomingMessages () {return []} set incomingMessages (e) {void 0 === e && (e = []), e.length > 0 && this.updateInboxMessages(e)} get incomingMessagesForPreview () {return []} set incomingMessagesForPreview (e) {void 0 === e && (e = []); const t = {}; e.length > 0 && this.inbox && (this.isPreview = !0, this.unviewedCounter = 0, e.forEach((e => {const i = "".concat(e.wzrk_id.split("_")[0], "_").concat(Date.now()); e.id = i, t[i] = e, this.unviewedMessages[i] = e, this.unviewedCounter++})), this.buildUIForMessages(t), this.updateUnviewedBadgeCounter())} connectedCallback () {this.init()} init () {this.config = this.isPreview ? this.inboxConfigForPreview : ge.readFromLSorCookie(V) || {}, 0 !== Object.keys(this.config).length && (this.inboxSelector = document.getElementById(this.config.inboxSelector), null !== this.inboxSelector && (this.config.styles.notificationsBadge ? this.addUnviewedBadge() : this.unviewedBadge && this.unviewedBadge.remove(), this.createinbox(), document.removeEventListener("click", this.addClickListenerOnDocument), document.addEventListener("click", this.addClickListenerOnDocument), this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText), this.shadow.innerHTML = this.getInboxStyles(), this.shadow.appendChild(this.inbox)))} addMsgsToInboxFromLS () {const e = this.deleteExpiredAndGetUnexpiredMsgs(!1), t = e ? Object.keys(e) : []; 0 !== t.length && (t.forEach((t => {e[t].viewed || (this.unviewedMessages[t] = e[t], this.unviewedCounter++)})), this.buildUIForMessages(e), this.updateUnviewedBadgeCounter())} deleteExpiredAndGetUnexpiredMsgs () {let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0], t = Vt(); const i = Math.floor(Date.now() / 1e3); for (const o in t) if (t[o].wzrk_ttl && t[o].wzrk_ttl > 0 && t[o].wzrk_ttl < i) {if (e && this.inbox) {const e = this.shadowRoot.getElementById(t[o].id); e && e.remove(), t[o].viewed || (this.unviewedCounter--, this.updateUnviewedBadgeCounter())} delete t[o]} return t && t.length > 0 && (t = Object.values(t).sort(((e, t) => t.date - e.date)).reduce(((e, t) => (e[t.id] = t, e)), {})), qt(t), t} updateInboxMessages () {let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; const t = this.deleteExpiredAndGetUnexpiredMsgs(), i = Date.now(), o = {}; e.forEach(((e, n) => {const r = "".concat(e.wzrk_id.split("_")[0], "_").concat(Date.now()); e.id = r, e.date = i - n, e.viewed = 0, t[r] = e, o[r] = e, this.unviewedMessages[r] = e, this.unviewedCounter++})), qt(t), this.inbox && (this.buildUIForMessages(o), this.updateUnviewedBadgeCounter())} createEl (e, t, i) {const o = document.createElement(e); return o.setAttribute("id", t), o.setAttribute("part", i || t), o} addUnviewedBadge () {this.unviewedBadge || (this.unviewedBadge = this.createEl("div", "unviewedBadge"), this.unviewedBadge.style.cssText = "display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor, "; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor, "; font-weight: bold; align-items: center; justify-content: center;"), document.body.appendChild(this.unviewedBadge)), this.updateUnviewedBadgePosition(), window.addEventListener("resize", (() => {this.updateUnviewedBadgePosition()}))} updateUnviewedBadgePosition () {try {const e = document.getElementById(this.config.inboxSelector) || this.inboxSelector, {top: t, right: i} = e.getBoundingClientRect(); this.unviewedBadge.style.top = "".concat(t - 8, "px"), this.unviewedBadge.style.left = "".concat(i - 8, "px")} catch (e) {this.logger.debug("Error updating unviewed badge position:", e)} } createinbox () {this.inbox = this.createEl("div", "inbox"); const e = this.createEl("div", "header"), t = this.createEl("div", "headerTitle"); t.innerText = this.config.title; const i = this.createEl("div", "closeInbox"); if (i.innerHTML = "×", e.appendChild(t), e.appendChild(i), this.inbox.appendChild(e), this.config.categories.length) {const e = this.createCategories(); this.inbox.appendChild(e)} this.inboxCard = this.createEl("div", "inboxCard"), this.inbox.appendChild(this.inboxCard), this.emptyInboxMsg = this.createEl("div", "emptyInboxMsg"), this.emptyInboxMsg.innerText = "All messages will be displayed here.", this.inboxCard.appendChild(this.emptyInboxMsg); const o = {root: this.inboxCard, rootMargin: "0px", threshold: .5}; this.observer = new IntersectionObserver(((e, t) => {this.handleMessageViewed(e)}), o), this.addMsgsToInboxFromLS()} createCategories () {const e = this.createEl("div", "categoriesContainer"), t = this.createEl("div", "leftArrow"); t.innerHTML = Qt, t.children[0].style = "transform: rotate(180deg)", t.addEventListener("click", (() => {this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70, 0)})), e.appendChild(t); const i = this.createEl("div", "categoriesWrapper");["All", ...this.config.categories].forEach(((e, t) => {const o = this.createEl("div", "category-".concat(t), "category"); o.innerText = e, 0 === t && (this.selectedCategoryRef = o), i.appendChild(o)})), e.appendChild(i); const o = this.createEl("div", "rightArrow"); o.innerHTML = Qt, o.addEventListener("click", (() => {this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70, 0)})), e.appendChild(o); const n = {root: e, threshold: .9}, r = i.children[0], s = i.children[this.config.categories.length]; new IntersectionObserver((e => {this.categoryObserverCb(t, e[0].intersectionRatio >= .9)}), n).observe(r); return new IntersectionObserver((e => {this.categoryObserverCb(o, e[0].intersectionRatio >= .9)}), n).observe(s), e} categoryObserverCb (e, t) {e && (e.style.display = t ? "none" : "flex")} updateActiveCategory (e) {this.selectedCategory = e, this.inboxCard.scrollTop = 0; let t = 0; this.prevCategoryRef && this.prevCategoryRef.setAttribute("selected", "false"), this.selectedCategoryRef.setAttribute("selected", "true"), this.inboxCard.childNodes.forEach((e => {"emptyInboxMsg" !== e.getAttribute("id") && (e.style.display = "All" === this.selectedCategory || e.getAttribute("category") === this.selectedCategory ? "block" : "none", "block" === e.style.display && t++)})), 0 === t ? (this.emptyInboxMsg.innerText = "".concat(e, " messages will be displayed here."), this.emptyInboxMsg.style.display = "block") : this.emptyInboxMsg.style.display = "none"} buildUIForMessages () {var e; let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; !this.isPreview && this.updateTSForRenderedMsgs(), this.inboxCard.scrollTop = 0; const i = null !== (e = this.config.maxMsgsInInbox) && void 0 !== e ? e : 15, o = this.inboxCard.firstChild, n = Object.values(t).sort(((e, t) => t.date - e.date)).map((e => e.id)); for (const e of n) {const i = new Bt(this.config, t[e]); i.setAttribute("id", t[e].id), i.setAttribute("pivot", t[e].wzrk_pivot), i.setAttribute("part", "ct-inbox-message"), this.config.categories.length > 0 ? (i.setAttribute("category", t[e].tags[0] || ""), i.style.display = "All" === this.selectedCategory || t[e].category === this.selectedCategory ? "block" : "none") : i.style.display = "block", this.inboxCard.insertBefore(i, o), this.observer.observe(i)} let r = this.inboxCard.querySelectorAll("ct-inbox-message").length; for (; r > i;) {const e = this.inboxCard.querySelectorAll("ct-inbox-message"); e.length > 0 && e[e.length - 1].remove(), r--} const s = this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length; this.emptyInboxMsg.style.display = s ? "none" : "block"} checkForWebInbox (e) {var t; const i = ge.readFromLSorCookie(V) || {}, o = document.getElementById(i.inboxSelector); return (null === (t = this.inboxSelector) || void 0 === t ? void 0 : t.contains(e.target)) || (null == o ? void 0 : o.contains(e.target))} handleMessageViewed (e) {const t = !this.isPreview; this.isInboxOpen && e.forEach((e => {e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && 0 === e.target.message.viewed && (e.target.message.viewed = 1, t ? (window.clevertap.renderNotificationViewed({msgId: e.target.campaignId, pivotId: e.target.pivotId}), this.updateMessageInLS(e.target.id, {...e.target.message, viewed: 1}), setTimeout((() => {e.target.shadowRoot.getElementById("unreadMarker").style.display = "none"}), 1e3)) : console.log("Notifiction viewed event will be raised at run time with payload ::", {msgId: e.target.campaignId, pivotId: e.target.pivotId}), this.unviewedCounter--, this.updateUnviewedBadgeCounter(), delete this.unviewedMessages[e.target.id])}))} updateMessageInLS (e, t) {if (!this.isPreview) {const i = Vt(); i[e] = t, qt(i)} } toggleInbox (e) {this.isInboxOpen = !this.isInboxOpen, this.isInboxFromFlutter = !!(null == e ? void 0 : e.rect), this.isInboxOpen ? (this.inboxCard.scrollTop = 0, !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs(), this.inbox.style.display = "block", this.inbox.style.zIndex = "2147483647", this.config.categories.length && (this.selectedCategoryRef.setAttribute("selected", "false"), this.selectedCategoryRef = this.shadowRoot.getElementById("category-0"), this.updateActiveCategory(this.selectedCategoryRef.innerText), this.shadowRoot.getElementById("categoriesWrapper").scrollLeft -= this.shadowRoot.getElementById("categoriesWrapper").scrollWidth), this.setInboxPosition(e)) : this.inbox.style.display = "none"} setInboxPosition (e) {const t = window.outerWidth, i = getComputedStyle(fe.inbox), o = i.getPropertyValue("--inbox-top"), n = i.getPropertyValue("--inbox-bottom"), r = i.getPropertyValue("--inbox-left"), s = i.getPropertyValue("--inbox-right"); if (t > 481 && !(o || n || r || s)) {const t = Kt(e, this.inbox.clientHeight, this.inbox.clientWidth), i = t.xPos, o = t.yPos; this.inbox.style.top = o + "px", this.inbox.style.left = i + "px"} } updateUnviewedBadgeCounter () {if (this.isPreview) return void this.setBadgeStyle(this.unviewedCounter); let e = 0; this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t => {const i = Vt(); i[t.id] && 0 === i[t.id].viewed && e++})), this.setBadgeStyle(e)} updateTSForRenderedMsgs () {this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e => {const t = e.id.split("_")[1]; e.shadow.getElementById("timeStamp").firstChild.innerText = Zt(t)}))} getInboxStyles () {const e = this.config.categories.length ? 64 : 16, t = {panelBackgroundColor: this.config.styles.panelBackgroundColor, panelBorderColor: this.config.styles.panelBorderColor, headerBackgroundColor: this.config.styles.header.backgroundColor, headerTitleColor: this.config.styles.header.titleColor, closeIconColor: this.config.styles.closeIconColor, categoriesTabColor: this.config.styles.categories.tabColor, categoriesTitleColor: this.config.styles.categories.titleColor, selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor, selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor, headerCategoryHeight: 36 + e}; this.config.styles.categories.borderColor && (t.categoriesBorderColor = this.config.styles.categories.borderColor), this.config.styles.categories.selectedTab.borderColor && (t.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor); const i = (e => {let {panelBackgroundColor: t, panelBorderColor: i, headerBackgroundColor: o, headerTitleColor: n, closeIconColor: r, categoriesTabColor: s, categoriesTitleColor: a, categoriesBorderColor: l, selectedCategoryTabColor: c, selectedCategoryTitleColor: d, selectedCategoryBorderColor: u, headerCategoryHeight: h} = e; return '\n \n ")})(t), o = this.config.styles.cards; return i + (e => {let {backgroundColor: t, borderColor: i, titleColor: o, descriptionColor: n, buttonColor: r, buttonTextColor: s, unreadMarkerColor: a} = e; return '\n \n ")})({backgroundColor: o.backgroundColor, borderColor: o.borderColor, titleColor: o.titleColor, descriptionColor: o.descriptionColor, buttonColor: o.buttonColor, buttonTextColor: o.buttonTextColor, unreadMarkerColor: o.unreadMarkerColor})} } const Ft = e => {e.inbox_preview ? fe.inbox.incomingMessagesForPreview = e.inbox_notifs : fe.inbox.incomingMessages = e}, Wt = e => {const t = ge.readFromLSorCookie(q) || {}; if (Object.keys(t).length > 0 && Object.keys(t)[0].includes("_")) {const i = {}; return i[e] = t, ge.saveToLSorCookie(q, i), i} return t}, Vt = () => {const e = JSON.parse(decodeURIComponent(ge.read(b))); if (!se(e)) return {}; const t = Wt(e); return t.hasOwnProperty(e) ? t[e] : {}}, qt = e => {const t = JSON.parse(decodeURIComponent(ge.read(b))); if (!se(t)) return; const i = {...Wt(t), [t]: e}; ge.saveToLSorCookie(q, i)}, Gt = e => new Promise(((t, i) => {const o = () => {null === fe.inbox && (e => {Ht(), fe.inbox = new Ut({logger: e}), document.body.appendChild(fe.inbox)})(e)}, n = () => {const t = ge.readFromLSorCookie(V) || {}; return t.inboxSelector ? document.getElementById(t.inboxSelector) && null === fe.inbox : (e.debug("Inbox selector is not configured"), !1)}, r = () => {e.debug("Failed to add inbox")}; let s = !1; const a = () => {s || (s = !0, function (t) {let i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 500, o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 20; return new Promise(((n, r) => {let s = 0; const a = setInterval((() => {e.debug("Retry attempt: ".concat(s + 1)), t() || null !== fe.inbox ? (clearInterval(a), n()) : s >= o && (clearInterval(a), r(new Error("Condition not met within max retries"))), s++}), i)}))}(n, 500, 20).then((() => {o(), t()})).catch(r))}; "complete" === document.readyState ? a() : (window.addEventListener("load", a), document.addEventListener("readystatechange", (() => {"complete" === document.readyState && a()})))})), Ht = () => {void 0 === customElements.get("ct-web-inbox") && (customElements.define("ct-web-inbox", Ut), customElements.define("ct-inbox-message", Bt))}, Kt = (e, t, i) => {const o = document.scrollingElement.scrollLeft, n = document.scrollingElement.scrollTop, r = window.innerWidth + o, s = window.innerHeight + n, a = e.rect || e.target.getBoundingClientRect(), l = a.x + o, c = a.y + n, d = a.left + o, u = a.right + o, h = a.top + n, p = a.bottom, g = a.height, f = a.width; let v, b, m = !1; const y = 16; if (p + t <= s) {const e = s - (p + t); b = e >= y ? p + y : p + e} else if (h - t >= n) {const e = h - t; b = e >= y ? h - t - y : h - t - e} else m = !0, b = c + g / 2 - t / 2, b < n ? b = n : b + t > s && (b = s - t); if (m) {const e = u + i; if (e <= r) {v = u + (e + y <= r ? y : r - e)} else {const e = d - i; v = e - (e - y >= o ? y : e - o)} } else v = l + f / 2 - i / 2, v < o ? v = d + i <= r ? d : o : v + i > r && (v = u - i >= o ? u - i : r - i); return {xPos: v, yPos: b}}, Zt = e => {const t = Date.now(); let i = Math.floor((t - e) / 6e4); return i < 5 ? "Just now" : i < 60 ? "".concat(i, " minute").concat(i > 1 ? "s" : "", " ago") : (i = Math.floor(i / 60), i < 24 ? "".concat(i, " hour").concat(i > 1 ? "s" : "", " ago") : (i = Math.floor(i / 24), "".concat(i, " day").concat(i > 1 ? "s" : "", " ago")))}, Jt = () => Object.keys(ge.readFromLSorCookie(V) || {}).length > 0, Qt = '\n\n\n', Yt = '\n\n\n', $t = "https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css", Xt = "wve-anti-flicker-show", ei = "wve-anti-flicker-hide", ti = "wve-flicker-style", ii = e => {if (e.data && function (e) {try {const t = new URL(e); return Boolean(t)} catch (e) {return !1} }(e.data.originUrl)) {{const t = new URL(e.data.originUrl).origin; if (e.origin !== t) return } var t, i; if ("Dashboard" === e.data.message) window.evtMaster = e.data.personalisation.evtMaster, oi(e.data.url, null !== (t = e.data.variant) && void 0 !== t ? t : null, null !== (i = e.data.details) && void 0 !== i ? i : {}, e.data.personalisation); else "Overlay" === e.data.message && li(e.data, !0)} }, oi = (e, t, i, o) => {"complete" === document.readyState ? ai(e, t, i, o) : document.addEventListener("readystatechange", (() => {"complete" === document.readyState && ai(e, t, i, o)}))}; let ni, ri = !1, si = !1; function ai (e, t, i, o) {if (!ri) {window.Shopify && (si = !0), document.body.innerHTML = "", document.head.innerHTML = "", document.documentElement.innerHTML = "", ni = document.createElement("div"), ni.id = "overlayDiv", ni.style.position = "relative", ni.style.display = "flex", document.body.appendChild(ni); (function (e, t, i, o, n) {return new Promise(((r, s) => {var a = document.createElement("script"); a.type = "module", a.src = e, a.onload = function () {"function" == typeof window.Overlay ? (window.Overlay({id: "#overlayDiv", url: t, variant: i, details: o, isShopify: si, personalisation: n}), r()) : s(new Error("ContentLayout not found in overlay.js"))}, a.onerror = function (e) {s(e)}, document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js", e, t, i, o).then((() => {console.log("Overlay script loaded successfully."), ri = !0})).catch((e => {console.error("Error loading overlay script:", e)})), (n = document.createElement("link")).rel = "stylesheet", n.type = "text/css", n.href = $t, document.head.appendChild(n)} var n} const li = (e, t) => {const i = [], o = t ? e.details : e.display.details; let n = window.location.href; if (t) {const e = new URL(n); e.searchParams.delete("ctActionMode"), n = e.toString()} let r = !1; const s = {msgId: e.wzrk_id, pivotId: e.wzrk_pivot}, a = () => {t || r || (r = !0, window.clevertap.renderNotificationViewed(s))}, l = (i, o) => {var n; if (o.elementCSS && (e => {if (void 0 !== e.elementCSS) {const t = document.createElement("style"); t.innerHTML = e.elementCSS, document.head.appendChild(t)} })(o), (null === (n = o.isTrackingClicks) || void 0 === n ? void 0 : n.name) && i.addEventListener("click", (() => {(e => {window.clevertap.renderNotificationClicked(e)})({msgId: e.wzrk_id, pivotId: e.wzrk_pivot, msgCTkv: {wzrk_selector: o.isTrackingClicks.name}})})), o.values) switch (o.values.editor) {case "html": i.outerHTML = t ? o.values.html.text : o.values.html; break; case "json": !function (e, t) {let i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; const o = {}; o.msgId = e.wzrk_id, e.wzrk_pivot && (o.pivotId = e.wzrk_pivot); null != t.json && (o.json = i ? t.json.text : t.json); const n = new CustomEvent("CT_web_native_display_buider", {detail: o}); document.dispatchEvent(n)}(e, o.values, t); break; case "form": s.msgCTkv = {wzrk_selector: o.selector}, function (e, t, i) {let o = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; if (void 0 !== t) {if (void 0 !== t.style && Object.keys(t.style).forEach((i => {e.style.setProperty(i, t.style[i])})), void 0 !== t.underline) {const i = e.style.textDecoration; t.underline ? e.style.textDecoration = "".concat(i, " underline").trim() : e.style.textDecoration = i.replace("underline", "").trim()} if (void 0 !== t.text && (e.innerText = o ? t.text.text : t.text), void 0 !== t.clickDetails) {const n = t.clickDetails.clickUrl; e.onclick = t.clickDetails.newTab ? () => {o || window.clevertap.raiseNotificationClicked(i), window.open(n, "_blank").focus()} : () => {o || window.clevertap.raiseNotificationClicked(i), window.location.href = n}} void 0 !== t.imgURL && "img" === e.tagName.toLowerCase() && (e.src = t.imgURL)} }(i, o.values.form, s, t)}}; o.forEach((e => {e.url === n && e.selectorData.forEach((e => {if ((e.selector.includes("-afterend-") || e.selector.includes("-beforebegin-")) && e.values.initialHtml) i.push(e); else {let t; try {t = document.querySelector(e.selector)} catch (e) {} t ? (a(), l(t, e)) : (e => {let t = 0; const i = setInterval((() => {let o; try {o = document.querySelector(e.selector)} catch (e) {} o ? (a(), l(o, e), clearInterval(i)) : ++t >= 20 && (console.log("No element present on DOM with selector '".concat(e, "'.")), clearInterval(i))}), 500)})(e)} }))})); const c = e => {const {pos: t, sibling: i} = function (e) {const t = /^(\d+)-(afterend|beforebegin)-(.+)$/, i = e.match(t); if (i) return {pos: i[2], sibling: i[3]}; return {pos: "beforebegin", sibling: ""}}(e.selector); let o = 0; const n = setInterval((() => {let r = null; try {const e = document.querySelector(i); r = document.querySelector('[ct-selector="'.concat(i, '"]')) || e} catch (e) {r = document.querySelector('[ct-selector="'.concat(i, '"]'))} if (r) {const o = document.createElement("div"); o.innerHTML = e.values.initialHtml; const s = o.firstElementChild; r.insertAdjacentElement(t, s), r.getAttribute("ct-selector") || r.setAttribute("ct-selector", i); const c = document.querySelector('[ct-selector="'.concat(e.selector, '"]')); a(), l(c, e), clearInterval(n)} else ++o >= 20 && (console.log("No element present on DOM with selector '".concat(i, "'.")), clearInterval(n))}), 500)}; if (i.length > 0) {i.sort(((e, t) => parseInt(e.selector.split("-")[0], 10) - parseInt(t.selector.split("-")[0], 10))).forEach(c)} }; function ci (e) {const {personalizedSelectors: t = [], delayTime: i = 2e3} = e, o = {}; let n, r = 0; function s (e) {function t (e) {const t = []; e.forEach((e => {const i = document.querySelectorAll(e); i.length ? (i.forEach((e => {(function (e) {const t = e.getBoundingClientRect(), {innerHeight: i, innerWidth: o} = window; return t.bottom > 0 && t.right > 0 && t.top < i && t.left < o})(e) && t.push(e)})), delete o[e]) : o[e] = !1})), function (e) {e.forEach((e => e.classList.add(ei))), setTimeout((() => {e.forEach((e => {e.classList.remove(ei), e.classList.add(Xt)}))}), i)}(t)} t(e), Object.keys(o).length && (n = setInterval((function () {t(Object.keys(o)), r++, (0 === Object.keys(o).length || r > 20) && (r = 0, clearInterval(n))}), 100))} !function () {const e = ti; if (!document.getElementById(e)) {const t = document.createElement("style"); t.id = e, t.textContent = "\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ", document.head.appendChild(t)} }(), window.addEventListener("DOMContentLoaded", (() => {!function () {let e = document.location.href; new MutationObserver((() => {e !== document.location.href && (e = document.location.href, s(t))})).observe(document.body, {childList: !0, subtree: !0})}()})), s(t)} class di extends HTMLElement {constructor() {super(), this._details = null, this.shadow = null, this.shadow = this.attachShadow({mode: "open"})} get details () {return this._details || ""} set details (e) {null === this._details && (this._details = e, this.renderBanner())} renderBanner () {this.shadow.innerHTML = this.getBannerContent(), !1 !== this.trackClick && this.addEventListener("click", (() => {const e = this.details.onClick; e && (this.details.window ? window.open(e, "_blank") : window.parent.location.href = e), window.clevertap.renderNotificationClicked({msgId: this.msgId, pivotId: this.pivotId})})), window.clevertap.renderNotificationViewed({msgId: this.msgId, pivotId: this.pivotId})} getBannerContent () {return '\n \n \n ")} } class ui extends HTMLElement {constructor() {super(), this._target = null, this._carousel = null, this.shadow = null, this.slides = 0, this.previouslySelectedItem = -1, this.selectedItem = 1, this.autoSlide = null, this.stopAutoSlideTimeout = null, this.shadow = this.attachShadow({mode: "open"}), void 0 === customElements.get("ct-web-personalisation-banner") && customElements.define("ct-web-personalisation-banner", di)} get target () {return this._target || ""} set target (e) {null === this._target && (this._target = e, this.renderCarousel())} get details () {return this.target.display.details} get display () {return this.target.display} renderCarousel () {this.slides = this.details.length, this.shadow.innerHTML = this.getStyles(); const e = this.getCarouselContent(); this.display.showNavBtns && e.insertAdjacentHTML("beforeend", this.display.navBtnsHtml), this.display.showNavArrows && (e.insertAdjacentHTML("beforeend", this.display.leftNavArrowHtml), e.insertAdjacentHTML("beforeend", this.display.rightNavArrowHtml)), this._carousel = e, this.shadow.appendChild(e), this.setupClick(), this.updateSelectedItem(), this.startAutoSlide(), this.setupOnHover(), window.clevertap.renderNotificationViewed({msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot})} setupClick () {this._carousel.addEventListener("click", (e => {const t = e.target.id; if (t.startsWith("carousel__button")) {const e = +t.split("-")[1]; e !== this.selectedItem && (this.previouslySelectedItem = this.selectedItem, this.selectedItem = e, this.updateSelectedItem(), this.startAutoSlide())} else if (t.startsWith("carousel__arrow")) t.endsWith("right") ? this.goToNext() : this.goToPrev(), this.startAutoSlide(); else if (t.indexOf("-") > -1) {const e = +t.split("-")[1], i = e - 1; window.parent.clevertap && window.clevertap.renderNotificationClicked({msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: e}); const o = this.details[i].onClick; "" !== o && (this.details[i].window ? window.open(o, "_blank") : window.location.href = o)} }))} setupOnHover () {this._carousel.addEventListener("mouseenter", (e => {this.stopAutoSlideTimeout = setTimeout((() => {this.autoSlide = clearInterval(this.autoSlide)}), 500)})), this._carousel.addEventListener("mouseleave", (e => {clearTimeout(this.stopAutoSlideTimeout), void 0 === this.autoSlide && this.startAutoSlide()}))} getCarouselContent () {const e = document.createElement("div"); return e.setAttribute("class", "carousel"), this.details.forEach(((t, i) => {const o = document.createElement("ct-web-personalisation-banner"); o.classList.add("carousel__item"), o.trackClick = !1, o.setAttribute("id", "carousel__item-".concat(i + 1)), o.details = t, e.appendChild(o)})), e} getStyles () {var e, t; return "\n \n ")} updateSelectedItem () {if (-1 !== this.previouslySelectedItem) {const e = this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)), t = this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem)); e.classList.remove("carousel__item--selected"), t && t.classList.remove("carousel__button--selected")} const e = this.shadow.getElementById("carousel__item-".concat(this.selectedItem)), t = this.shadow.getElementById("carousel__button-".concat(this.selectedItem)); e.classList.add("carousel__item--selected"), t && t.classList.add("carousel__button--selected")} startAutoSlide () {clearInterval(this.autoSlide), this.autoSlide = setInterval((() => {this.goToNext()}), this.display.sliderTime ? 1e3 * this.display.sliderTime : 3e3)} goToNext () {this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)} goToPrev () {this.goTo(this.selectedItem, this.selectedItem - 1)} goTo (e, t) {this.previouslySelectedItem = e, this.selectedItem = t, 0 === t && (this.selectedItem = this.slides), this.updateSelectedItem()} } const hi = e => {var t; void 0 === customElements.get("ct-web-personalisation-banner") && customElements.define("ct-web-personalisation-banner", di); const i = null !== (t = e.display.divId) && void 0 !== t ? t : e.display.divSelector, o = document.createElement("ct-web-personalisation-banner"); o.msgId = e.wzrk_id, o.pivotId = e.wzrk_pivot, o.divHeight = e.display.divHeight, o.details = e.display.details[0]; const n = e.display.divId ? document.getElementById(i) : document.querySelector(i); n.innerHTML = "", n.appendChild(o)}, pi = e => {var t; void 0 === customElements.get("ct-web-personalisation-carousel") && customElements.define("ct-web-personalisation-carousel", ui); const i = null !== (t = e.display.divId) && void 0 !== t ? t : e.display.divSelector, o = document.createElement("ct-web-personalisation-carousel"); o.target = e; const n = e.display.divId ? document.getElementById(i) : document.querySelector(i); n.innerHTML = "", n.appendChild(o)}, gi = e => {const t = {}; t.msgId = e.wzrk_id, e.wzrk_pivot && (t.pivotId = e.wzrk_pivot), null != e.msgContent.kv && (t.kv = e.msgContent.kv); const i = new CustomEvent("CT_web_native_display", {detail: t}); document.dispatchEvent(i)}, fi = (e, t) => {const {display: i, wzrk_id: o, wzrk_pivot: n} = e || {}, r = i.divId || {}, s = i.details[0].html; if (!r || !s) return void t.error("No div Id or no html found"); let a = !1; const l = {msgId: o, pivotId: n}; (e => {let i = 0; const o = setInterval((() => {const n = document.querySelector(e); n ? (a || (a = !0, window.clevertap.renderNotificationViewed(l)), n.outerHTML = s, clearInterval(o)) : ++i >= 20 && (t.log("No element present on DOM with divId '".concat(e, "'.")), clearInterval(o))}), 500)})(r)}, vi = e => {const t = {}; t.msgId = e.wzrk_id; const i = e.display.details[0].json; e.wzrk_pivot && (t.pivotId = e.wzrk_pivot), null != e.display.json && (t.json = i); const o = new CustomEvent("CT_web_native_display_json", {detail: t}); document.dispatchEvent(o)}, bi = (e, t) => {const i = window.parent[e]; "function" == typeof i && (null != t.display.kv ? i(t.display.kv) : i())}, mi = (e, t) => {const i = "\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n logger.debug('open in preview mode')\n if (parentWindow) {\n window.addEventListener('message', (event) => {\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 4866f2c6..4c32b378 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),h=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),p=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,h),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),he=e=>{if(pe(e))return"$D_"+e},pe=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,h="",p=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(p<<=1,15==g){h+=f(p);break}g++}return h})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(p,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=he(i[2]+i[0]+i[1])}return t},ht=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=ht(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,pt(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=ht(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),pt(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:h}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,h=a.top+n,p=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(p+t<=s){const e=s-(p+t);b=e>=y?p+y:p+e}else if(h-t>=n){const e=h-t;b=e>=y?h-t-y:h-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","eventData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', \"*\")\n window.addEventListener('message', (event) => {\n const parentWindowUrl = event.origin\n if (!parentWindowUrl.includes('clevertap')) {\n return\n }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData['inapp_notifs'])\n console.log('0', eventData['inapp_notifs'][0])\n console.log('msgContent', eventData['inapp_notifs'][0]['msgContent'])\n if (eventData) {\n renderCustomHtml(eventData['inapp_notifs'][0]['msgContent'])\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","parentWindowUrl","eventData","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 4c32b378..767ea46c 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),h=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),p=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,h),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),he=e=>{if(pe(e))return"$D_"+e},pe=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,h="",p=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(p<<=1,15==g){h+=f(p);break}g++}return h})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(p,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=he(i[2]+i[0]+i[1])}return t},ht=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=ht(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,pt(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=ht(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),pt(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:h}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,h=a.top+n,p=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(p+t<=s){const e=s-(p+t);b=e>=y?p+y:p+e}else if(h-t>=n){const e=h-t;b=e>=y?h-t-y:h-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","parentWindowUrl","eventData","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","inapp_notifs","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n // const parentWindowUrl = event.origin\n // if (!parentWindowUrl.includes('clevertap')) {\n // return\n // }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData.inapp_notifs)\n console.log('0', eventData.inapp_notifs[0])\n console.log('msgContent', eventData.inapp_notifs[0].msgContent)\n if (eventData) {\n renderCustomHtml(eventData.inapp_notifs[0].msgContent)\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 767ea46c..ecfab4d4 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":";;;;;;;;;;;;;;;;;;;;EAAO,MAAMA,aAAa,GAAG,oBAAtB;EACA,MAAMC,eAAe,GAAG,QAAxB;EACA,MAAMC,cAAc,GAAG,KAAvB;;;;;;;;;;;;ECAQ,MAAMC,OAAN,CAAc;EAO3BC,EAAAA,WAAW,GAAsE;EAAA,QAApE;EAAEC,MAAAA;EAAF,KAAoE,uEAA3D,EAA2D;EAAA,QAAvDC,MAAuD,uEAA9C,EAA8C;EAAA,QAA1CC,YAA0C,uEAA3BP,aAA2B;EAAA,QAAZQ,KAAY,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aALvE;EAKuE;EAAA;EAAA;EAAA,aAJjER;EAIiE;EAAA;EAAA;EAAA,aAHjE;EAGiE;EAAA;EAAA;EAAA,aAFxE;EAEwE;EAC/E,SAAKK,EAAL,GAAUA,EAAV;;EACA,QAAIC,MAAJ,EAAY;EACV,WAAKA,MAAL,GAAcA,MAAd;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,WAAKA,YAAL,GAAoBA,YAApB;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,WAAKA,KAAL,GAAaA,KAAb;EACD;EACF;;EAED,MAAIH,EAAJ,GAAU;EACR,uCAAO,IAAP;EACD;;EAED,MAAIA,EAAJ,CAAQI,SAAR,EAAmB;EACjB,gEAAkBA,SAAlB;EACD;;EAED,MAAIH,MAAJ,GAAc;EACZ,uCAAO,IAAP;EACD;;EAED,MAAIA,MAAJ,CAAYA,MAAZ,EAAoB;EAClB,0DAAeA,MAAf;EACD;;EAED,MAAII,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIH,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIC,KAAJ,GAAa;EACX,uCAAO,IAAP;EACD;;EAED,MAAIA,KAAJ,CAAWA,KAAX,EAAkB;EAChB,wDAAcA,KAAd;EACD;;EAED,MAAIG,iBAAJ,GAAyB;EACvB,QAAI,KAAKL,MAAT,EAAiB;EACf,uBAAU,KAAKA,MAAf,cAAyB,KAAKC,YAA9B;EACD,KAFD,MAEO;EACL,UAAI,KAAKA,YAAL,KAAsBP,aAA1B,EAAyC;EACvC,yBAAUE,cAAV,cAA4B,KAAKK,YAAjC;EACD;;EACD,aAAO,KAAKA,YAAZ;EACD;EACF;;EAED,MAAIK,aAAJ,GAAqB;EACnB,qBAAUX,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIE,WAAJ,GAAmB;EACjB,qBAAUZ,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIG,WAAJ,GAAmB;EACjB,qBAAUb,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAII,QAAJ,GAAgB;EACd,qBAAUd,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EArF0B;;ECFtB,MAAMK,uBAAuB,GAAG,IAAIC,MAAJ,CAAW,qCAAX,EAAkD,GAAlD,CAAhC;EACA,MAAMC,yBAAyB,GAAG,IAAID,MAAJ,CAAW,wBAAX,EAAqC,GAArC,CAAlC;EAEA,MAAME,gBAAgB,GAAG,IAAIF,MAAJ,CAAW,IAAX,EAAiB,GAAjB,CAAzB;EACA,MAAMG,KAAK,GAAG,OAAd;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,qBAAqB,GAAG,iBAA9B;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,gBAAgB,GAAG,WAAzB;EACA,MAAMC,aAAa,GAAG,aAAtB;;EACA,MAAMC,cAAc,GAAG,QAAvB;EACA,MAAMC,wBAAwB,GAAG,KAAK,EAAtC;;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,WAAW,GAAG,WAApB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,UAAU,GAAG,iBAAnB;EACA,MAAMC,UAAU,GAAG,UAAnB;EACA,MAAMC,YAAY,GAAG,QAArB;EAEA,MAAMC,MAAM,GAAG,QAAf;EAEA,MAAMC,OAAO,GAAG,SAAhB;EAEA,MAAMC,cAAc,GAAG,UAAvB;EACA,MAAMC,UAAU,GAAG,QAAnB;EACA,MAAMC,aAAa,GAAG,WAAtB;EACA,MAAMC,sBAAsB,GAAG,KAA/B;EACA,MAAMC,SAAS,GAAG,OAAlB;EACA,MAAMC,SAAS,GAAG,QAAlB;EACA,MAAMC,cAAc,GAAG,GAAvB;EACA,MAAMC,MAAM,GAAG,OAAf;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,aAAa,GAAG,QAAQ,GAA9B;;EACA,MAAMC,SAAS,GAAG,GAAlB;;EACA,MAAMC,yBAAyB,GAAG,IAAI,EAAJ,GAAS,IAA3C;;EACA,MAAMC,8BAA8B,GAAG,IAAI,EAAJ,GAAS,IAAhD;;EACA,MAAMC,6BAA6B,GAAG,GAAtC;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,WAAW,GAAG,OAApB;EACA,MAAMC,OAAO,GAAG,SAAhB;EACA,MAAMC,mBAAmB,GAAG,qBAA5B;EACA,MAAMC,oBAAoB,GAAG,sBAA7B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,eAAe,GAAG,mBAAxB;EACA,MAAMC,QAAQ,GAAG,YAAjB;EACA,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,aAAa,GAAG,IAAtB;EACA,MAAMC,mBAAmB,GAAG,OAAO,EAAP,GAAY,EAAxC;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,cAAc,GAAG,kBAAvB;EACA,MAAMC,4BAA4B,GAAG,8BAArC;EACA,MAAMC,eAAe,GAAG,iBAAxB;EACA,MAAMC,4BAA4B,GAAG,GAArC;EACA,MAAMC,0BAA0B,GAAG,cAAnC;EACA,MAAMC,0BAA0B,GAAG,WAAnC;EACA,MAAMC,aAAa,GAAG,oBAAtB;EAEA,MAAMC,aAAa,GAAG,CAC3B,QAD2B,EAE3B,aAF2B,EAG3B,cAH2B,EAI3B,mBAJ2B,EAK3BxB,mBAL2B,EAM3BC,oBAN2B,CAAtB;;EC9DA,MAAMwB,QAAQ,GAAIC,KAAD,IAAW;EACjC,SAAQ,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYC,MAAtD;EACD,CAFM;EAIA,MAAMC,QAAQ,GAAIF,KAAD,IAAW;EACjC;EACA,SAAOG,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,KAA/B,MAA0C,iBAAjD;EACD,CAHM;EAKA,MAAMO,YAAY,GAAIP,KAAD,IAAW;EACrC,SAAO,OAAQA,KAAR,KAAmB,QAAnB,IAAgCA,KAAK,YAAYQ,IAAxD;EACD,CAFM;EAIA,MAAMC,aAAa,GAAIC,GAAD,IAAS;EACpC,OAAK,MAAMC,IAAX,IAAmBD,GAAnB,EAAwB;EACtB,QAAIA,GAAG,CAACE,cAAJ,CAAmBD,IAAnB,CAAJ,EAA8B;EAAE,aAAO,KAAP;EAAc;EAC/C;;EACD,SAAO,IAAP;EACD,CALM;EAOA,MAAME,qBAAqB,GAAIC,CAAD,IAAO;EAC1C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,CAAD,CAAX,CAAN,IAAyBG,QAAQ,CAACH,CAAD,CAAxC;EACD,CAFM;EAIA,MAAMI,QAAQ,GAAIJ,CAAD,IAAO;EAC7B,SAAO,wBAAwBK,IAAxB,CAA6BL,CAA7B,KAAmC,OAAOA,CAAP,KAAa,QAAvD;EACD,CAFM;EAIA,MAAMM,YAAY,GAAIC,KAAD,IAAW;EACrC,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAA5B,IAAyCD,KAAK,KAAK,WAAvD,EAAoE;EAClE,WAAO,KAAP;EACD;;EACD,SAAO,IAAP;EACD,CALM;EAiBA,MAAME,sBAAsB,GAAG,CAACC,CAAD,EAAIC,MAAJ,KAAe;EACnD;EACA,MAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;EACzB,SAAK,MAAME,GAAX,IAAkBF,CAAlB,EAAqB;EACnB,UAAIA,CAAC,CAACZ,cAAF,CAAiBc,GAAjB,CAAJ,EAA2B;EACzB,cAAMC,YAAY,GAAGJ,sBAAsB,CAACC,CAAC,CAACE,GAAD,CAAF,EAASD,MAAT,CAA3C;EACA,YAAIG,YAAJ;EACAA,QAAAA,YAAY,GAAGC,QAAQ,CAACH,GAAD,EAAM3F,uBAAN,CAAvB;;EACA,YAAI6F,YAAY,CAACE,MAAb,GAAsB,IAA1B,EAAgC;EAC9BF,UAAAA,YAAY,GAAGA,YAAY,CAACG,SAAb,CAAuB,CAAvB,EAA0B,IAA1B,CAAf;EACAN,UAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBJ,YAAY,GAAG,0CAAvC;EACD;;EACD,eAAOJ,CAAC,CAACE,GAAD,CAAR;EACAF,QAAAA,CAAC,CAACI,YAAD,CAAD,GAAkBD,YAAlB;EACD;EACF;EACF,GAdD,MAcO;EACL,QAAIM,GAAJ;;EAEA,QAAIlC,QAAQ,CAACyB,CAAD,CAAZ,EAAiB;EACfS,MAAAA,GAAG,GAAGJ,QAAQ,CAACL,CAAD,EAAIvF,yBAAJ,CAAd;;EACA,UAAIgG,GAAG,CAACH,MAAJ,GAAa,IAAjB,EAAuB;EACrBG,QAAAA,GAAG,GAAGA,GAAG,CAACF,SAAJ,CAAc,CAAd,EAAiB,IAAjB,CAAN;EACAN,QAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBC,GAAG,GAAG,0CAA9B;EACD;EACF,KAND,MAMO;EACLA,MAAAA,GAAG,GAAGT,CAAN;EACD;;EACD,WAAOS,GAAP;EACD;;EACD,SAAOT,CAAP;EACD,CA/BM;EAiCA,MAAMK,QAAQ,GAAG,CAAC7B,KAAD,EAAQkC,KAAR,KAAkB;EACxC,SAAOlC,KAAK,CAACmC,OAAN,CAAcD,KAAd,EAAqB,EAArB,CAAP;EACD,CAFM;;ECnFA,MAAME,QAAQ,GAAG,MAAM;EAC5B,QAAMC,KAAK,GAAG,IAAI7B,IAAJ,EAAd;EACA,SAAO6B,KAAK,CAACC,WAAN,KAAsB,EAAtB,GAA2BD,KAAK,CAACE,QAAN,EAA3B,GAA8C,EAA9C,GAAmDF,KAAK,CAACG,MAAN,EAA1D;EACD,CAHM;EAKA,MAAMC,MAAM,GAAG,MAAM;EAC1B,SAAOC,IAAI,CAACC,KAAL,CAAY,IAAInC,IAAJ,EAAD,CAAaoC,OAAb,KAAyB,IAApC,CAAP;EACD,CAFM;EAIA,MAAMC,iBAAiB,GAAIC,OAAD,IAAa;EAC5C,SAAQ,QAAQJ,IAAI,CAACK,KAAL,CAAWD,OAAO,CAACF,OAAR,KAAoB,IAA/B,CAAhB;EACD,CAFM;EAIA,MAAMI,OAAO,GAAIC,EAAD,IAAQ;EAC7B;EACA,MAAIC,WAAW,CAACD,EAAD,CAAf,EAAqB;EACnB,WAAO,QAAQA,EAAf;EACD;EACF,CALM;EAOA,MAAMC,WAAW,GAAIC,IAAD,IAAU;EACnC,QAAMC,OAAO,GAAG,0BAA0BC,IAA1B,CAA+BF,IAA/B,CAAhB;EACA,MAAIC,OAAO,IAAI,IAAf,EAAqB,OAAO,KAAP;EACrB,QAAME,CAAC,GAAGF,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMG,CAAC,GAAGH,OAAO,CAAC,CAAD,CAAP,GAAa,CAAvB;EACA,QAAMI,CAAC,GAAGJ,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMK,YAAY,GAAG,IAAIjD,IAAJ,CAASgD,CAAT,EAAYD,CAAZ,EAAeD,CAAf,CAArB,CANmC;;EAQnC,SAAOG,YAAY,CAACC,OAAb,MAA0BJ,CAA1B,IAA+BG,YAAY,CAAClB,QAAb,MAA2BgB,CAA1D,IAA+DE,YAAY,CAACnB,WAAb,MAA8BkB,CAApG;EACD,CATM;;ECdA,MAAMG,cAAN,CAAqB;EAC1B,SAAOC,IAAP,CAAalC,GAAb,EAAkBL,KAAlB,EAAyB;EACvB,QAAI,CAACK,GAAD,IAAQ,CAACL,KAAb,EAAoB;EAClB,aAAO,KAAP;EACD;;EACD,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACC,OAAb,CAAqBrC,GAArB,EAA0B,OAAOL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC2C,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAA9D;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO6C,IAAP,CAAaxC,GAAb,EAAkB;EAChB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAIyC,IAAI,GAAG,IAAX;;EACA,QAAI,KAAKN,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAGL,YAAY,CAACM,OAAb,CAAqB1C,GAArB,CAAP;EACD;;EACD,QAAIyC,IAAI,IAAI,IAAZ,EAAkB;EAChB,UAAI;EACFA,QAAAA,IAAI,GAAGH,IAAI,CAACK,KAAL,CAAWF,IAAX,CAAP;EACD,OAFD,CAEE,OAAOG,CAAP,EAAU;EACb;;EACD,WAAOH,IAAP;EACD;;EAED,SAAOI,MAAP,CAAe7C,GAAf,EAAoB;EAClB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAI,KAAKmC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACU,UAAb,CAAwB9C,GAAxB;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO+C,YAAP,CAAqBC,IAArB,EAA2BC,MAA3B,EAAmC;EACjC,QAAIC,SAAS,GAAGF,IAAI,GAAG,2CAAvB;;EAEA,QAAIC,MAAJ,EAAY;EACVC,MAAAA,SAAS,GAAGA,SAAS,GAAG,UAAZ,GAAyBD,MAAzB,GAAkC,UAA9C;EACD;;EAEDE,IAAAA,QAAQ,CAACC,MAAT,GAAkBF,SAAlB;EACD;;EAED,SAAOG,YAAP,CAAqBL,IAArB,EAA2BrD,KAA3B,EAAkC2D,OAAlC,EAA2CL,MAA3C,EAAmD;EACjD,QAAIM,OAAO,GAAG,EAAd;EACA,QAAIC,SAAS,GAAG,EAAhB;;EACA,QAAIF,OAAJ,EAAa;EACX,YAAM7B,IAAI,GAAG,IAAI3C,IAAJ,EAAb;EACA2C,MAAAA,IAAI,CAACgC,OAAL,CAAahC,IAAI,CAACP,OAAL,KAAkBoC,OAAO,GAAG,IAAzC;EAEAC,MAAAA,OAAO,GAAG,eAAe9B,IAAI,CAACiC,WAAL,EAAzB;EACD;;EAED,QAAIT,MAAJ,EAAY;EACVO,MAAAA,SAAS,GAAG,cAAcP,MAA1B;EACD;;EAEDtD,IAAAA,KAAK,GAAGgE,kBAAkB,CAAChE,KAAD,CAA1B;EAEAwD,IAAAA,QAAQ,CAACC,MAAT,GAAkBJ,IAAI,GAAG,GAAP,GAAarD,KAAb,GAAqB4D,OAArB,GAA+BC,SAA/B,GAA2C,UAA7D;EACD;;EAED,SAAOI,UAAP,CAAmBZ,IAAnB,EAAyB;EACvB,UAAMa,MAAM,GAAGb,IAAI,GAAG,GAAtB;EACA,UAAMc,EAAE,GAAGX,QAAQ,CAACC,MAAT,CAAgBW,KAAhB,CAAsB,GAAtB,CAAX;;EACA,SAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGF,EAAE,CAAC1D,MAA3B,EAAmC4D,GAAG,EAAtC,EAA0C;EACxC,UAAIC,CAAC,GAAGH,EAAE,CAACE,GAAD,CAAV;;EACA,aAAOC,CAAC,CAACC,MAAF,CAAS,CAAT,MAAgB,GAAvB,EAA4B;EAC1BD,QAAAA,CAAC,GAAGA,CAAC,CAAC5D,SAAF,CAAY,CAAZ,EAAe4D,CAAC,CAAC7D,MAAjB,CAAJ;EACD,OAJuC;;;EAMxC,UAAI6D,CAAC,CAACE,OAAF,CAAUN,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,eAAOO,kBAAkB,CAACH,CAAC,CAAC5D,SAAF,CAAYwD,MAAM,CAACzD,MAAnB,EAA2B6D,CAAC,CAAC7D,MAA7B,CAAD,CAAzB;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,SAAO+B,wBAAP,GAAmC;EACjC,WAAO,kBAAkBkC,MAAlB,IAA4BA,MAAM,CAACjC,YAAP,KAAwB,IAApD,IAA4D,OAAOiC,MAAM,CAACjC,YAAP,CAAoBC,OAA3B,KAAuC,UAA1G;EACD;;EAED,SAAOiC,gBAAP,CAAyBC,QAAzB,EAAmC5E,KAAnC,EAA0C;EACxC,QAAIA,KAAK,IAAI,IAAb,EAAmB;EACjB;EACD;;EACD,QAAI;EACF,UAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,aAAKD,IAAL,CAAUqC,QAAV,EAAoBZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAAtC;EACD,OAFD,MAEO;EACL,YAAI4E,QAAQ,KAAK3J,YAAjB,EAA+B;EAC7B,eAAKyI,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAAChE,KAAD,CAA9C,EAAuD,CAAvD,EAA0D0E,MAAM,CAACG,QAAP,CAAgBC,QAA1E;EACD,SAFD,MAEO;EACL,eAAKpB,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAA9C,EAAuE,CAAvE,EAA0E0E,MAAM,CAACG,QAAP,CAAgBC,QAA1F;EACD;EACF;;EACDC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACD,KAXD,CAWE,OAAOiD,CAAP,EAAU;EACb;;EAED,SAAOgC,kBAAP,CAA2BL,QAA3B,EAAqC;EACnC,QAAI9B,IAAJ;;EACA,QAAIiC,GAAG,CAACC,WAAJ,CAAgBzF,cAAhB,CAA+BqF,QAA/B,CAAJ,EAA8C;EAC5C,aAAOG,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,CAAP;EACD;;EACD,QAAI,KAAKpC,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAG,KAAKD,IAAL,CAAU+B,QAAV,CAAP;EACD,KAFD,MAEO;EACL9B,MAAAA,IAAI,GAAG,KAAKmB,UAAL,CAAgBW,QAAhB,CAAP;EACD;;EAED,QAAI9B,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK7C,SAA1B,IAAuC,EAAE,OAAO6C,IAAI,CAACoC,IAAZ,KAAqB,UAArB,IAAmCpC,IAAI,CAACoC,IAAL,OAAgB,EAArD,CAA3C,EAAqG;EACnG,UAAIlF,KAAJ;;EACA,UAAI;EACFA,QAAAA,KAAK,GAAG2C,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC3B,IAAD,CAA7B,CAAR;EACD,OAFD,CAEE,OAAOqC,GAAP,EAAY;EACZnF,QAAAA,KAAK,GAAGyE,kBAAkB,CAAC3B,IAAD,CAA1B;EACD;;EACDiC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACA,aAAOA,KAAP;EACD;EACF;;EAED,SAAOoF,iBAAP,CAA0B/B,IAA1B,EAAgCrD,KAAhC,EAAuC2D,OAAvC,EAAgDL,MAAhD,EAAwD;EACtD;EACA;EACA;EACA;EACA;EAEA,QAAIA,MAAJ,EAAY;EACV,UAAI+B,WAAW,GAAGN,GAAG,CAACM,WAAtB;;EACA,UAAIA,WAAW,IAAI,IAAnB,EAAyB;EAAE;EACzB,cAAMC,WAAW,GAAGhC,MAAM,CAACc,KAAP,CAAa,GAAb,CAApB;EACA,YAAImB,eAAe,GAAG,EAAtB;;EACA,aAAK,IAAIlB,GAAG,GAAGiB,WAAW,CAAC7E,MAAZ,GAAqB,CAApC,EAAuC4D,GAAG,IAAI,CAA9C,EAAiDA,GAAG,EAApD,EAAwD;EACtD,cAAIA,GAAG,KAAK,CAAZ,EAAe;EACbkB,YAAAA,eAAe,GAAGD,WAAW,CAACjB,GAAD,CAAX,GAAmBkB,eAArC;EACD,WAFD,MAEO;EACLA,YAAAA,eAAe,GAAG,MAAMD,WAAW,CAACjB,GAAD,CAAjB,GAAyBkB,eAA3C;EACD,WALqD;;;EAQtD,cAAI,KAAKtB,UAAL,CAAgBZ,IAAhB,CAAJ,EAA2B;EACzB;EACA,gBAAImC,cAAc,GAAG,UAAUnC,IAAV,GAAiBgB,GAAtC;EACA,iBAAKX,YAAL,CAAkB8B,cAAlB,EAAkCxF,KAAlC,EAAyC,EAAzC,EAA6CuF,eAA7C,EAHyB;;EAIzB,gBAAI,CAAC,KAAKtB,UAAL,CAAgBuB,cAAhB,CAAL,EAAsC;EAAE;EACtC;EACD,aAFD,MAEO;EAAE;EACP,mBAAKpC,YAAL,CAAkBoC,cAAlB,EAAkCD,eAAlC;EACD;EACF;;EAED,eAAK7B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC4B,eAAxC;EACA,gBAAME,UAAU,GAAG,KAAKxB,UAAL,CAAgBZ,IAAhB,CAAnB,CApBsD;;EAsBtD,cAAIoC,UAAU,IAAIzF,KAAlB,EAAyB;EACvBqF,YAAAA,WAAW,GAAGE,eAAd;EACAR,YAAAA,GAAG,CAACM,WAAJ,GAAkBA,WAAlB;EACA;EACD;EACF;EACF,OA/BD,MA+BO;EACL,aAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC0B,WAAxC;EACD;EACF,KApCD,MAoCO;EACL,WAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwCL,MAAxC;EACD;EACF;;EAED,SAAOoC,WAAP,CAAoBd,QAApB,EAA8B;EAC5B,UAAMe,OAAO,GAAG,KAAKV,kBAAL,CAAwBzJ,WAAxB,CAAhB;;EACA,QAAImK,OAAO,IAAI,IAAf,EAAqB;EACnB,aAAOA,OAAO,CAACf,QAAD,CAAd;EACD;EACF;;EAED,SAAOgB,WAAP,CAAoBhB,QAApB,EAA8B5E,KAA9B,EAAqC;EACnC,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,UAAIqD,WAAW,GAAG,KAAKZ,kBAAL,CAAwBzJ,WAAxB,CAAlB;;EACA,UAAIqK,WAAW,IAAI,IAAnB,EAAyB;EACvBA,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI7F,KAAK,KAAKC,SAAd,EAAyB;EACvB,eAAO4F,WAAW,CAACjB,QAAD,CAAlB;EACD,OAFD,MAEO;EACLiB,QAAAA,WAAW,CAACjB,QAAD,CAAX,GAAwB5E,KAAxB;EACD;;EACD,WAAK2E,gBAAL,CAAsBnJ,WAAtB,EAAmCqK,WAAnC;EACD;EACF;;EAED,SAAOC,mBAAP,CAA4BlB,QAA5B,EAAsC;EACpC,UAAM5E,KAAK,GAAG,KAAK0F,WAAL,CAAiBd,QAAjB,CAAd;EACA,SAAKgB,WAAL,CAAiBhB,QAAjB,EAA2B3E,SAA3B;EACA,WAAOD,KAAP;EACD;;EAED,SAAO+F,uBAAP,GAAkC;EAChC,QAAIC,CAAC,GAAG,KAAKf,kBAAL,CAAwB/J,YAAxB,CAAR;;EACA,QAAI8K,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACD;;EACDA,IAAAA,CAAC,CAACC,IAAF,GAAS,IAAT;EACA,SAAKtB,gBAAL,CAAsBzJ,YAAtB,EAAoC8K,CAApC;EACD;;EAED,SAAOE,WAAP,CAAoBpD,IAApB,EAA0BqD,KAA1B,EAAiC/F,MAAjC,EAAyC;EACvC,QAAIgG,SAAS,GAAG,KAAKnB,kBAAL,CAAwBrJ,YAAxB,CAAhB;;EACA,QAAI,OAAOwK,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,GAAG,EAAZ;EACD;;EACDA,IAAAA,SAAS,CAACD,KAAD,CAAT,GAAmB;EAAEE,MAAAA,CAAC,EAAEvD;EAAL,KAAnB;EACA,SAAK6B,gBAAL,CAAsB/I,YAAtB,EAAoCwK,SAApC;EACAhG,IAAAA,MAAM,CAACkG,KAAP,qBAA0B1K,YAA1B,sBAAkDuK,KAAlD,iBAA8DrD,IAA9D;EACD;;EAED,SAAOyD,YAAP,CAAqBC,MAArB,EAA6BpG,MAA7B,EAAqC;EACnC,UAAMqG,SAAS,GAAG,KAAKxB,kBAAL,CAAwBrJ,YAAxB,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAlD,IAA0D,OAAOA,SAAS,CAACD,MAAD,CAAhB,KAA6B,WAA3F,EAAwG;EACtGpG,MAAAA,MAAM,CAACkG,KAAP,sBAA2BE,MAA3B,qBAA4CC,SAAS,CAACD,MAAD,CAAT,CAAkBH,CAA9D;EACA,aAAOI,SAAS,CAACD,MAAD,CAAhB;EACA,WAAK7B,gBAAL,CAAsB/I,YAAtB,EAAoC6K,SAApC;EACD;EACF;;EArOyB;EAwOrB,MAAM1B,GAAG,GAAG;EACjBC,EAAAA,WAAW,EAAE;EACX0B,IAAAA,OAAO,EAAE,IADE;EAEXC,IAAAA,KAAK,EAAE,CAFI;EAGXC,IAAAA,MAAM,EAAE;EAHG,GADI;EAMjBxK,EAAAA,SAAS,EAAE,IANM;EAOjByK,EAAAA,gBAAgB,EAAE5G,SAPD;EAQjB6G,EAAAA,eAAe,EAAE7G,SARA;EASjB8G,EAAAA,YAAY,EAAE,KATG;EAUjBC,EAAAA,cAAc,EAAE,KAVC;EAWjB3B,EAAAA,WAAW,EAAE,IAXI;EAYjB4B,EAAAA,cAAc,EAAE,IAZC;EAajBC,EAAAA,cAAc,EAAE,EAbC;EAcjBC,EAAAA,gBAAgB,EAAE,IAdD;EAejBC,EAAAA,WAAW,EAAE,CAfI;EAeD;EAChBC,EAAAA,QAAQ,EAAE;EACRC,IAAAA,mBAAmB,EAAE;EADb,GAhBO;EAkBd;EACHC,EAAAA,WAAW,EAAE,EAnBI;EAoBjBC,EAAAA,mBAAmB,EAAE,IApBJ;EAqBjBC,EAAAA,KAAK,EAAE,IArBU;EAsBjBC,EAAAA,kBAAkB,EAAE,KAtBH;EAuBjBC,EAAAA,YAAY,EAAE,EAvBG;EAwBjBC,EAAAA,OAAO,EAAE,KAxBQ;EAyBjB/C,EAAAA,QAAQ,EAAE,IAzBO;EA0BjBgD,EAAAA,kBAAkB,EAAE,KA1BH;EA2BjBC,EAAAA,iBAAiB,EAAE,IA3BF;EA4BjBC,EAAAA,cAAc,EAAE,IA5BC;EA6BjBC,EAAAA,aAAa,EAAE,EA7BE;EA8BjBC,EAAAA,UAAU,EAAE,IA9BK;EAgCjB;;EAhCiB,CAAZ;;;;;;EC3OQ,MAAMC,QAAN,CAAe;EAG5BpO,EAAAA,WAAW,CAAEqO,GAAF,EAAO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAChB,SAAKA,GAAL,GAAWA,GAAX;EACA,QAAIC,QAAQ,GAAG9F,cAAc,CAAC2C,kBAAf,CAAkC7I,SAAlC,CAAf;;EACA,QAAIgM,QAAJ,EAAc;EACZ,YAAMC,YAAY,GAAG,EAArB;EACA,gEAAiB,EAAjB;EACAD,MAAAA,QAAQ,GAAGA,QAAQ,CAACE,KAApB;;EACA,WAAK,MAAMC,KAAX,IAAoBH,QAApB,EAA8B;EAC5B,YAAIA,QAAQ,CAAC7I,cAAT,CAAwBgJ,KAAxB,CAAJ,EAAoC;EAClCF,UAAAA,YAAY,CAACD,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAD,CAAZ,GAAmCH,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAnC;;EACA,kEAAeC,IAAf,CAAoBJ,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAApB;EACD;EACF;;EACD,WAAKD,KAAL,GAAaD,YAAb;EACD,KAXD,MAWO;EACL,WAAKC,KAAL,GAAa,EAAb;EACA,gEAAiB,EAAjB;EACD;EACF;;EAEDG,EAAAA,GAAG,CAAEpI,GAAF,EAAO;EACR,UAAMqI,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,QAAIqI,IAAJ,EAAU;EACR,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACA,WAAKA,KAAL,CAAWjI,GAAX,IAAkBqI,IAAlB;;EACA,8DAAeF,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACA,WAAOI,IAAP;EACD;;EAEDE,EAAAA,GAAG,CAAEvI,GAAF,EAAOL,KAAP,EAAc;EACf,UAAM0I,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,UAAMwI,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIH,IAAI,IAAI,IAAZ,EAAkB;EAChB,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACD,KAFD,MAEO,IAAIO,OAAO,CAACpI,MAAR,KAAmB,KAAK0H,GAA5B,EAAiC;EACtC,WAAKG,KAAL,+BAAa,IAAb,wCAAoCO,OAAO,CAAC,CAAD,CAA3C,EAAgD,KAAKP,KAArD;EACD;;EACD,SAAKA,KAAL,CAAWjI,GAAX,IAAkBL,KAAlB;;EACA,QAAI,wDAAe,0DAAiB,CAAhC,MAAuCK,GAA3C,EAAgD;EAC9C,8DAAemI,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACD;;EAEDK,EAAAA,aAAa,CAAEL,KAAF,EAAS;EACpB,UAAMQ,UAAU,GAAG,EAAnB;;EACA,UAAMD,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,cAAMC,IAAI,GAAG,EAAb;EACAA,QAAAA,IAAI,CAACR,IAAL,CAAUK,OAAO,CAACE,KAAD,CAAjB;EACAC,QAAAA,IAAI,CAACR,IAAL,CAAUF,KAAK,CAACO,OAAO,CAACE,KAAD,CAAR,CAAf;EACAD,QAAAA,UAAU,CAACN,IAAX,CAAgBQ,IAAhB;EACD;EACF;;EACD1G,IAAAA,cAAc,CAACqC,gBAAf,CAAgCvI,SAAhC,EAA2C;EAAEkM,MAAAA,KAAK,EAAEQ;EAAT,KAA3C;EACD;;EAEDG,EAAAA,MAAM,CAAEjJ,KAAF,EAAS;EACb,QAAIA,KAAK,KAAK,IAAd,EAAoB;EAClB,aAAO,IAAP;EACD;;EACD,UAAM6I,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,YAAI,KAAKT,KAAL,CAAWO,OAAO,CAACE,KAAD,CAAlB,MAA+B/I,KAAnC,EAA0C;EACxC,iBAAO6I,OAAO,CAACE,KAAD,CAAd;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EAEDG,EAAAA,gBAAgB,GAAI;EAClB,UAAMC,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIA,OAAO,IAAI,IAAX,IAAmBA,OAAO,CAAC1I,MAAR,GAAiB,CAAxC,EAA2C;EACzC,aAAO0I,OAAO,CAACA,OAAO,CAAC1I,MAAR,GAAiB,CAAlB,CAAd;EACD;;EACD,WAAO,CAAC,CAAR;EACD;;EAED2I,EAAAA,UAAU,GAAI;EACZ,UAAMC,UAAU,GAAG,wDAAe5I,MAAlC;;EACA,QAAI4I,UAAJ,EAAgB;EACd,aAAO,wDAAeA,UAAU,GAAG,CAA5B,CAAP;EACD;EACF;;EA3F2B;;uDA6FThJ,KAAKhB,KAAK;EAC3B,QAAMwJ,OAAO,GAAGlG,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,6BAAe,IAAf,wBAAX,CAAhB;EACA,QAAM0G,QAAQ,GAAG,EAAjB;EACA,MAAIC,aAAJ;;EACA,OAAK,MAAMR,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,QAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,UAAIF,OAAO,CAACE,KAAD,CAAP,KAAmB1I,GAAvB,EAA4B;EAC1BiJ,QAAAA,QAAQ,CAACT,OAAO,CAACE,KAAD,CAAR,CAAR,GAA2B1J,GAAG,CAACwJ,OAAO,CAACE,KAAD,CAAR,CAA9B;EACD,OAFD,MAEO;EACLQ,QAAAA,aAAa,GAAGR,KAAhB;EACD;EACF;EACF;;EACDF,EAAAA,OAAO,CAACW,MAAR,CAAeD,aAAf,EAA8B,CAA9B;EACA,4DAAiB5G,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeiG,OAAf,CAAX,CAAjB;EACA,SAAOS,QAAP;EACD;;;;;;;;;;EC1GY,MAAMG,YAAN,CAAmB;EAMhC3P,EAAAA,WAAW,OAAwC;EAAA,QAAtC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBC,MAAAA,MAAnB;EAA2BC,MAAAA;EAA3B,KAAsC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EACjD,0DAAexJ,MAAf;EACA,4DAAgBsJ,OAAhB;EACA,0DAAeC,MAAf;EACA,4DAAgBC,OAAhB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEEC,EAAAA,CAAC,CAAEC,MAAF,EAAUF,OAAV,EAAmBG,MAAnB,EAA2BC,UAA3B,EAAuCC,cAAvC,EAAuD;EACtD,QAAIC,MAAM,GAAG,KAAb;EACA,QAAIC,OAAO,GAAG,KAAd,CAFsD;EAKtD;EACA;EACA;;EACA,QAAIzF,MAAM,CAAC0F,eAAX,EAA4B;EAC1B,UAAIL,MAAM,IAAKC,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAKtF,MAAM,CAAC2F,OAAnE,EAA6E;EAC3E3F,QAAAA,MAAM,CAAC0F,eAAP,GAAyB,KAAzB;EACAF,QAAAA,MAAM,GAAG,IAAT;EACD;EACF,KAbqD;;;EAgBtD,QAAI,OAAOF,UAAP,KAAsB,WAA1B,EAAuC;EACrCA,MAAAA,UAAU,GAAG,CAAb;EACD;;EAED1H,IAAAA,cAAc,CAACiE,YAAf,CAA4ByD,UAA5B,8BAAwC,IAAxC;;EAEA,QAAIA,UAAU,GAAGjF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC,EAAwC;EACtC;EACA;EACD;;EAED,QAAI,CAAC5G,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC,UAAIoD,MAAJ,EAAY;EACVK,QAAAA,OAAO,GAAG,IAAV;EACD;EACF;;EAED,QAAI,CAACpK,YAAY,CAAC,oDAAa2G,OAAd,CAAb,IAAuCqD,MAAvC,IAAiD,OAAOE,cAAP,KAA0B,SAA/E,EAA0F;EACxF,YAAMK,UAAU,GAAG,sDAAcC,sBAAd,EAAnB;EAEA;EACN;EACA;;;EACM,UAAI7F,MAAM,CAAC0F,eAAP,IAA2BE,UAAU,CAACT,CAAX,IAAiBD,OAAO,GAAGU,UAAU,CAACT,CAArE,EAA0E;EACxE;EACD;;EACD,0DAAavD,KAAb,sBAAiC,oDAAaI,OAA9C,qBAAgEoD,MAAhE;;EACA,0DAAapD,OAAb,GAAuBoD,MAAvB;;EACA,UAAI,CAAC/J,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC;EACApE,QAAAA,cAAc,CAACwD,mBAAf,CAAmC3J,SAAnC;EACD;;EACD,UAAI2N,MAAM,IAAIxH,cAAc,CAACE,wBAAf,EAAd,EAAyD;EACvD,YAAIuC,GAAG,CAAC3I,SAAJ,IAAiB,IAArB,EAA2B;EACzB2I,UAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,cAAMmO,SAAS,GAAGlI,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAlB;EACA,YAAIuP,gBAAJ;;EACA,YAAID,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACzQ,EAAnC,EAAuC;EACrC0Q,UAAAA,gBAAgB,GAAG1F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBkC,SAAS,CAACzQ,EAA9B,CAAnB;;EACA,cAAIgQ,MAAJ,EAAY;EACV,gBAAI,CAACU,gBAAL,EAAuB;EACrBnI,cAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,IAAxD,EADqB;EAGrB;;EACA4H,cAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkB4B,SAAS,CAACzQ,EAA5B,EAAgC+P,MAAhC;EACD;EACF;EACF;;EAEDxH,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C,EAnBuD;;EAqBvD,cAAMY,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB,CAD6E;EAG7E;;EACA,gEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF;;EACDrI,MAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+C6O,MAA/C,EAAuDrN,aAAvD,EAAsEiI,MAAM,CAACG,QAAP,CAAgBC,QAAtF;EACAxC,MAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C;EACD;;EAED,QAAIxH,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,4DAAcqI,aAAd,CAA4BjB,OAA5B;EACD,KAnFqD;;;EAsFtD,UAAMvK,GAAG,GAAG,sDAAckL,sBAAd,EAAZ,CAtFsD;;;EAyFtD,QAAI,OAAOlL,GAAG,CAACwK,CAAX,KAAiB,WAAjB,IAAgCxK,GAAG,CAACwK,CAAJ,IAASD,OAA7C,EAAsD;EACpDvK,MAAAA,GAAG,CAACwK,CAAJ,GAAQD,OAAR;EACAvK,MAAAA,GAAG,CAACyL,CAAJ,GAAQ1J,MAAM,EAAd,CAFoD;;EAGpD,4DAAc2J,sBAAd,CAAqC1L,GAArC;EACD,KA7FqD;;;EAgGtD,QAAIU,YAAY,CAAC,oDAAa2G,OAAd,CAAhB,EAAwC;EACtC3B,MAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD,KAlGqD;;;EAqGtD,QAAI,CAACmD,MAAM,IAAIC,OAAX,KAAuB,CAAC,sDAAca,gBAA1C,EAA4D;EAC1D,4DAAcC,mBAAd;EACD;;EAEDlG,IAAAA,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyBoD,UAAzB;EACD;;EAjI+B;;;;ECFnB,MAAMkB,aAAN,CAAoB;EAIjCpR,EAAAA,WAAW,OAAc;EAAA,QAAZ;EAAEsG,MAAAA;EAAF,KAAY;EAAA;EAAA;EAAA;EAAA;EAAA,SAFzBsG,OAEyB;EACvB,8DAAetG,MAAf;EACA,SAAKsG,OAAL,GAAe,KAAKyE,OAAL,EAAf;EACD;;EAEDA,EAAAA,OAAO,GAAI;EACT,QAAIC,IAAI,GAAG,IAAX;;EACA,QAAIrL,YAAY,CAAC,KAAK2G,OAAN,CAAhB,EAAgC;EAC9B,aAAO,KAAKA,OAAZ;EACD;;EACD,QAAIpE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMxC,KAAK,GAAGsC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAd;;EACA,UAAI8E,YAAY,CAACC,KAAD,CAAhB,EAAyB;EACvB,YAAI;EACFoL,UAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACzE,KAAD,CAA7B,CAAP;EACD,SAFD,CAEE,OAAOiD,CAAP,EAAU;EACV,kEAAaqD,KAAb,CAAmB,8DAA8DtG,KAAjF,EADU;EAGV;EACA;EACA;;;EACA,cAAIA,KAAK,CAACS,MAAN,KAAiB,EAArB,EAAyB;EACvB2K,YAAAA,IAAI,GAAGpL,KAAP;EACAsC,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C+E,KAA9C;EACD,WAHD,MAGO;EACL,oEAAaqL,KAAb,CAAmB,kBAAkBrL,KAArC;EACD;EACF,SAfsB;;;EAkBvB,YAAID,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,UAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+CmQ,IAA/C,EAAqD3O,aAArD,EAAoEiI,MAAM,CAACG,QAAP,CAAgBC,QAApF;EACD;EACF;EACF;;EAED,QAAI,CAAC/E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EACvBA,MAAAA,IAAI,GAAG9I,cAAc,CAAC2B,UAAf,CAA0BhJ,YAA1B,CAAP;;EACA,UAAI8E,YAAY,CAACqL,IAAD,CAAZ,KAAuBA,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAAtB,IAA2B4G,IAAI,CAAC5G,OAAL,CAAa,IAAb,MAAuB,CAAlD,IAAuD4G,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAApG,CAAJ,EAA4G;EAC1G4G,QAAAA,IAAI,GAAG,IAAP;EACD;;EACD,UAAIrL,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CmQ,IAA9C;EACD;EACF;;EAED,WAAOA,IAAP;EACD;;EAnDgC;;ECJ5B,MAAME,kBAAkB,GAAG,iCAA3B;EAGA,MAAMC,sBAAsB,GAAG,kBAA/B;;EACA,MAAMC,WAAW,aAAMD,sBAAN,6BAAjB;EACA,MAAME,WAAW,aAAMF,sBAAN,yCAA2DD,kBAA3D,CAAjB;EACA,MAAMI,YAAY,aAAMH,sBAAN,+GAAiID,kBAAjI,CAAlB;EACA,MAAMK,cAAc,aAAMJ,sBAAN,sDAAwED,kBAAxE,CAApB;EACA,MAAMM,aAAa,aAAML,sBAAN,qDAAuED,kBAAvE,CAAnB;EACA,MAAMO,eAAe,aAAMN,sBAAN,4EAA8FD,kBAA9F,CAArB;EACA,MAAMQ,SAAS,aAAMP,sBAAN,4CAA8DD,kBAA9D,CAAf;EACA,MAAMS,SAAS,aAAMR,sBAAN,uCAAf;EAGA,MAAMS,iBAAiB,aAAMT,sBAAN,0DAAvB;EACA,MAAMU,kBAAkB,aAAMV,sBAAN,iEAAxB;;ECVP,IAAIW,gBAAJ;;EAEO,MAAMC,oBAAoB,GAAIC,QAAD,IAAc;EAChD;EACA,MAAIvN,QAAQ,CAACuN,QAAD,CAAZ,EAAwB;EACtB,SAAK,IAAI/L,GAAT,IAAgB+L,QAAhB,EAA0B;EACxB,UAAIA,QAAQ,CAAC7M,cAAT,CAAwBc,GAAxB,CAAJ,EAAkC;EAChC,YAAIxB,QAAQ,CAACuN,QAAQ,CAAC/L,GAAD,CAAT,CAAR,IAA2BgM,KAAK,CAACC,OAAN,CAAcF,QAAQ,CAAC/L,GAAD,CAAtB,CAA/B,EAA6D;EAC3D,iBAAO,KAAP;EACD,SAFD,MAEO,IAAInB,YAAY,CAACkN,QAAQ,CAAC/L,GAAD,CAAT,CAAhB,EAAiC;EACtC+L,UAAAA,QAAQ,CAAC/L,GAAD,CAAR,GAAgBmB,iBAAiB,CAAC4K,QAAQ,CAAC/L,GAAD,CAAT,CAAjC;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EACD,SAAO,KAAP;EACD,CAfM;EAiBA,MAAMkM,4BAA4B,GAAG,CAACC,UAAD,EAAapM,MAAb,KAAwB;EAClE,MAAIvB,QAAQ,CAAC2N,UAAD,CAAZ,EAA0B;EACxB,SAAK,IAAInM,GAAT,IAAgBmM,UAAhB,EAA4B;EAC1B,UAAIA,UAAU,CAACjN,cAAX,CAA0Bc,GAA1B,CAAJ,EAAoC;EAClC,YAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,cAAI,CAACgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAL,EAAqC;EACnC,mBAAO,KAAP;EACD;;EAED,cAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAAhB,GAAyB,EAA7B,EAAiC;EAC/BL,YAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwB,kDAAkD6L,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAA1F;EACD;;EAED,eAAK,IAAIgM,OAAT,IAAoBD,UAAU,CAACnM,GAAD,CAA9B,EAAqC;EACnC,gBAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBd,cAAhB,CAA+BkN,OAA/B,CAAJ,EAA6C;EAAE;EAC7C,kBAAI,CAAC5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAT,IAAuC,CAACN,oBAAoB,CAACK,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAhE,EAA4F;EAC1F,uBAAO,KAAP;EACD;EACF;EACF;EACF,SAhBD,MAgBO;EACL,cAAI5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAX,CAAR,IAA6BgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAjC,EAAiE;EAC/D,mBAAO,KAAP;EACD,WAFD,MAEO,IAAInB,YAAY,CAACsN,UAAU,CAACnM,GAAD,CAAX,CAAhB,EAAmC;EACxCmM,YAAAA,UAAU,CAACnM,GAAD,CAAV,GAAkBmB,iBAAiB,CAACgL,UAAU,CAACnM,GAAD,CAAX,CAAnC;EACD;EACF;EACF;EACF;;EAED,QAAI3B,QAAQ,CAAC8N,UAAU,CAACzR,UAAD,CAAX,CAAR,IAAoC8E,QAAQ,CAAC2M,UAAU,CAACzR,UAAD,CAAX,CAAhD,EAA0E;EACxE;EACA,YAAM2R,SAAS,GAAGF,UAAU,CAACzR,UAAD,CAAV,GAAyB,EAA3C,CAFwE;;EAIxE,UAAI,OAAOmR,gBAAP,KAA4B,WAAhC,EAA6C;EAC3CA,QAAAA,gBAAgB,GAAG5J,cAAc,CAAC2C,kBAAf,CAAkCjK,qBAAlC,CAAnB;EACD;;EACD,UAAI,OAAOkR,gBAAP,KAA4B,WAA5B,IAA2CA,gBAAgB,CAAChH,IAAjB,OAA4BwH,SAAS,CAACxH,IAAV,EAA3E,EAA6F;EAC3F;EACA9E,QAAAA,MAAM,CAACiL,KAAP,CAAa,mCAAmCmB,UAAhD;EACA,eAAO,KAAP;EACD;;EACDN,MAAAA,gBAAgB,GAAGQ,SAAnB;EACApK,MAAAA,cAAc,CAACqC,gBAAf,CAAgC3J,qBAAhC,EAAuD0R,SAAvD;EACD;;EACD,WAAO,IAAP;EACD,GA9CiE;;;EA+ClE,SAAO,KAAP;EACD,CAhDM;;;;;;;;;;;;EClBQ,MAAMC,YAAN,SAA2BN,KAA3B,CAAiC;EAM9CvS,EAAAA,WAAW,OAAgD8S,MAAhD,EAAwD;EAAA,QAAtD;EAAExM,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBmD,MAAAA;EAAnB,KAAsD;EACjE;EADiE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEjE,8DAAezM,MAAf;EACA,gEAAkBwM,MAAlB;EACA,gEAAgBlD,OAAhB;EACA,4FAAgCmD,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAgB;EAClB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CoR,SAC4C;EAD5CA,QAAAA,SAC4C;EAAA;;EACjD,gFAAwBA,SAAxB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAazB,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,2BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,gEAAkB,IAAlB;EACD;;EAoDDC,EAAAA,UAAU,CAAEC,OAAF,EAAW;EACnB,QAAI,6BAAC,IAAD,uDAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,OAAOlI,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;EACD;;EACD,QAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C;EACD;;EACD,UAAMoG,MAAM,GAAGnI,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAf;EACA,UAAME,OAAO,GAAG,EAAhB;;EACA,QAAI,OAAOD,MAAP,KAAkB,WAAtB,EAAmC;EACjCC,MAAAA,OAAO,CAACC,SAAR,GAAoB,IAAIjO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAApB;EACAC,MAAAA,OAAO,CAACE,QAAR,GAAmB,IAAIlO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAAnB;EACAC,MAAAA,OAAO,CAACG,KAAR,GAAgBJ,MAAM,CAAC,CAAD,CAAtB;EACA,aAAOC,OAAP;EACD;EACF;;EAlG6C;;yDA8B1BL,WAAW;EAC7B,MAAIT,KAAK,CAACC,OAAN,CAAcQ,SAAd,CAAJ,EAA8B;EAC5B,WAAOA,SAAS,CAACrM,MAAV,GAAmB,CAA1B,EAA6B;EAC3B,UAAI8M,SAAS,GAAGT,SAAS,CAACU,KAAV,EAAhB;;EACA,UAAI,CAAC9O,QAAQ,CAAC6O,SAAD,CAAb,EAA0B;EACxB,gEAAalC,KAAb,CAAmBI,WAAnB;;EACA;EACD;;EAED,UAAI8B,SAAS,CAAC9M,MAAV,GAAmB,IAAvB,EAA6B;EAC3B8M,QAAAA,SAAS,GAAGA,SAAS,CAAC7M,SAAV,CAAoB,CAApB,EAAuB,IAAvB,CAAZ;;EACA,gEAAaC,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,0CAA1C;EACD;;EAED,UAAI9O,aAAa,CAACgP,QAAd,CAAuBF,SAAvB,CAAJ,EAAuC;EACrC,gEAAa5M,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,oEAA1C;;EACA;EACD;;EAED,YAAMzK,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAezM,QAAQ,CAAC+M,SAAD,EAAY7S,uBAAZ,CAAvB;;EAEA,UAAIoS,SAAS,CAACrM,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,cAAM2L,QAAQ,GAAGU,SAAS,CAACU,KAAV,EAAjB;;EACA,YAAI,CAAC3O,QAAQ,CAACuN,QAAD,CAAb,EAAyB;EACvB;EACAU,UAAAA,SAAS,CAACa,OAAV,CAAkBvB,QAAlB;EACD,SAHD,MAGO;EACL;EACA,cAAImB,SAAS,KAAK,SAAlB,EAA6B;EAC3B,gBAAI,CAAChB,4BAA4B,CAACH,QAAD,8BAAW,IAAX,wBAAjC,EAA2D;EACzD,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B,4CAA9B;;EACA;EACD;EACF,WALD,MAKO;EACL,gBAAI,CAACwL,oBAAoB,CAACC,QAAD,CAAzB,EAAqC;EACnC,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,qCAA1C;;EACA;EACD;EACF;;EACDzK,UAAAA,IAAI,CAAC8K,OAAL,GAAexB,QAAf;EACD;EACF;;EAED,gEAAcyB,YAAd,CAA2B/K,IAA3B;EACD;EACF;EACF;;ECpFI,MAAMgL,YAAY,GAAIC,GAAD,IAAS;EACnC,QAAMC,SAAS,GAAG,EAAlB;EACA,QAAM3J,GAAG,GAAG0J,GAAG,CAACvJ,OAAJ,CAAY,GAAZ,CAAZ;;EAEA,MAAIH,GAAG,GAAG,CAAV,EAAa;EACX,UAAM4J,GAAG,GAAGF,GAAG,CAACrN,SAAJ,CAAc2D,GAAG,GAAG,CAApB,CAAZ;EACA,QAAI6J,KAAJ;EACA,UAAMC,EAAE,GAAG,KAAX,CAHW;;EAIX,UAAMC,MAAM,GAAG,oBAAf;;EACA,UAAMC,MAAM,GAAG,UAAUxE,CAAV,EAAa;EAC1B,UAAIyE,WAAW,GAAGzE,CAAC,CAAC/I,OAAF,CAAUqN,EAAV,EAAc,GAAd,CAAlB;;EACA,UAAI;EACFG,QAAAA,WAAW,GAAG7J,kBAAkB,CAAC6J,WAAD,CAAhC;EACD,OAFD,CAEE,OAAOrL,CAAP,EAAU;EAEX;;EACD,aAAOqL,WAAP;EACD,KARD;;EASAJ,IAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;;EACA,WAAOC,KAAP,EAAc;EACZF,MAAAA,SAAS,CAACK,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAAP,CAAT,GAA8BG,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAApC;EACAA,MAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;EACD;EACF;;EACD,SAAOD,SAAP;EACD,CAzBM;EA2BA,MAAMO,SAAS,GAAIR,GAAD,IAAS;EAChC,MAAIA,GAAG,KAAK,EAAZ,EAAgB,OAAO,EAAP;EAChB,MAAIS,CAAC,GAAGhL,QAAQ,CAACiL,aAAT,CAAuB,GAAvB,CAAR;EACAD,EAAAA,CAAC,CAACE,IAAF,GAASX,GAAT;EACA,SAAOS,CAAC,CAAC1J,QAAT;EACD,CALM;EAOA,MAAM6J,QAAQ,GAAG,CAACZ,GAAD,EAAM/H,CAAN,EAAS4I,CAAT,KAAe;EACrC,SAAOb,GAAG,GAAG,GAAN,GAAY/H,CAAZ,GAAgB,GAAhB,GAAsBhC,kBAAkB,CAAC4K,CAAD,CAA/C;EACD,CAFM;EAIA,MAAMC,WAAW,GAAG,MAAM;EAC/B,SAAOnK,MAAM,CAACG,QAAP,CAAgBC,QAAvB;EACD,CAFM;;ECtCP;EACO,MAAMgK,qBAAqB,GAAIC,YAAD,IAAkB;EACrD,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,CAAC,IAAIF,YAAY,CAACtO,MAAb,GAAsB,CAA3B,IAAgC,CAA3C,CAAd;EACA,MAAIyO,MAAM,GAAG,CAACH,YAAY,GAAGC,OAAhB,EACRlO,OADQ,CACA,KADA,EACO,GADP,EAERA,OAFQ,CAEA,IAFA,EAEM,GAFN,CAAb;EAIA,MAAIqO,OAAO,GAAGzK,MAAM,CAAC0K,IAAP,CAAYF,MAAZ,CAAd;EACA,MAAIG,aAAa,GAAG,EAApB;;EACA,OAAK,IAAIC,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACH,OAAO,CAAC1O,MAAxB,EAAgC6O,CAAC,EAAjC,EAAqC;EACnCD,IAAAA,aAAa,CAAC7G,IAAd,CAAmB2G,OAAO,CAACI,UAAR,CAAmBD,CAAnB,CAAnB;EACD;;EACD,SAAO,IAAIE,UAAJ,CAAeH,aAAf,CAAP;EACD,CAZM;EAcA,MAAMI,YAAY,GAAG,CAACC,UAAD,EAAatP,MAAb,KAAwB;EAClDA,EAAAA,MAAM,IAAI,OAAOA,MAAM,CAACkG,KAAd,KAAwB,UAAlC,IAAgDlG,MAAM,CAACkG,KAAP,CAAa,UAAUoJ,UAAvB,CAAhD;EACA,SAAOC,gBAAgB,CAACD,UAAD,CAAvB;EACD,CAHM;EAKA,MAAME,QAAQ,GAAIC,YAAD,IAAkB;EACxC,MAAIA,YAAY,IAAI,IAApB,EAA0B,OAAO,EAAP;EAC1B,MAAIP,CAAJ;EAAA,MAAOtP,KAAP;EAAA,MACI8P,kBAAkB,GAAG,EADzB;EAAA,MAEIC,0BAA0B,GAAG,EAFjC;EAAA,MAGIC,SAAS,GAAG,EAHhB;EAAA,MAIIC,UAAU,GAAG,EAJjB;EAAA,MAKIC,SAAS,GAAG,EALhB;EAAA,MAMIC,iBAAiB,GAAG,CANxB;EAAA;EAOIC,EAAAA,gBAAgB,GAAG,CAPvB;EAAA,MAQIC,eAAe,GAAG,CARtB;EAAA,MASIC,mBAAmB,GAAG,EAT1B;EAAA,MAUIC,gBAAgB,GAAG,CAVvB;EAAA,MAWIC,qBAAqB,GAAG,CAX5B;EAAA,MAYIC,EAZJ;EAAA,MAaIC,CAAC,GAAG9R,MAAM,CAAC+R,YAbf;;EAeA,OAAKF,EAAE,GAAG,CAAV,EAAaA,EAAE,GAAGZ,YAAY,CAACpP,MAA/B,EAAuCgQ,EAAE,IAAI,CAA7C,EAAgD;EAC9CT,IAAAA,SAAS,GAAGH,YAAY,CAACtL,MAAb,CAAoBkM,EAApB,CAAZ;;EACA,QAAI,CAAC3R,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDE,SAAzD,CAAL,EAA0E;EACxEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB,GAAgCI,gBAAgB,EAAhD;EACAL,MAAAA,0BAA0B,CAACC,SAAD,CAA1B,GAAwC,IAAxC;EACD;;EAEDC,IAAAA,UAAU,GAAGC,SAAS,GAAGF,SAAzB;;EACA,QAAIlR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDG,UAAzD,CAAJ,EAA0E;EACxEC,MAAAA,SAAS,GAAGD,UAAZ;EACD,KAFD,MAEO;EACL,UAAInR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,YAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,gBAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;EACF;;EACDxQ,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,SAvBD,MAuBO;EACLA,UAAAA,KAAK,GAAG,CAAR;;EACA,eAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,QAAAA,iBAAiB;;EACjB,YAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,UAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,UAAAA,eAAe;EAChB;;EACD,eAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,OAxDD,MAwDO;EACLlQ,QAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,aAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB,OA7EI;;;EA+ELP,MAAAA,kBAAkB,CAACG,UAAD,CAAlB,GAAiCG,gBAAgB,EAAjD;EACAF,MAAAA,SAAS,GAAGtR,MAAM,CAACoR,SAAD,CAAlB;EACD;EACF,GA7GuC;;;EAgHxC,MAAIE,SAAS,KAAK,EAAlB,EAAsB;EACpB,QAAIpR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,UAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,cAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;EACF;;EACDxQ,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,OAvBD,MAuBO;EACLA,QAAAA,KAAK,GAAG,CAAR;;EACA,aAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB;;EACD,aAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,KAxDD,MAwDO;EACLlQ,MAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,WAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,QAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,YAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,UAAAA,qBAAqB,GAAG,CAAxB;EACAF,UAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,UAAAA,gBAAgB,GAAG,CAAnB;EACD,SAJD,MAIO;EACLC,UAAAA,qBAAqB;EACtB;;EACDxQ,QAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,IAAAA,iBAAiB;;EACjB,QAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,MAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,MAAAA,eAAe;EAChB;EACF,GA9LuC;;;EAiMxCrQ,EAAAA,KAAK,GAAG,CAAR;;EACA,OAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,QAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,MAAAA,qBAAqB,GAAG,CAAxB;EACAF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,MAAAA,gBAAgB,GAAG,CAAnB;EACD,KAJD,MAIO;EACLC,MAAAA,qBAAqB;EACtB;;EACDxQ,IAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD,GA5MuC;;;EA+MxC,SAAO,IAAP,EAAa;EACXuQ,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,QAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACA;EACD,KAHD,MAGOC,qBAAqB;EAC7B;;EACD,SAAOF,mBAAP;EACD,CAvNM;EAyNA,MAAMO,SAAS,GAAG,MAAM;EAC7B,MAAIxQ,GAAG,GAAG,EAAV;EACA,MAAIiP,CAAC,GAAG,CAAR;;EAEA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGiP,CAAZ;EACD;;EAED,SAAOjP,GAAG,GAAG,KAAb;EACD,CAjBM;;EAmBP,MAAMyQ,OAAO,GAAGD,SAAS,EAAzB;EAgDO,MAAMlB,gBAAgB,GAAIhR,KAAD,IAAW;EACzC,MAAIA,KAAK,IAAI,IAAb,EAAmB,OAAO,EAAP;EACnB,MAAIoS,MAAM,GAAG,EAAb;EACA,MAAIC,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,IAAxC;EACA,MAAIhC,CAAC,GAAG,CAAR;EAEA3Q,EAAAA,KAAK,GAAGiR,QAAQ,CAACjR,KAAD,CAAhB;;EAEA,SAAO2Q,CAAC,GAAG3Q,KAAK,CAAC8B,MAAN,GAAe,CAA1B,EAA6B;EAE3B,QAAI6O,CAAC,GAAG,CAAJ,IAAS,CAAb,EAAgB;EACd0B,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,KAA2B,CAAlC;EACA2B,MAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,IAA0B,GAAjC;EACA,UAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAY3Q,KAAK,CAAC8B,MAAtB,EACEyQ,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAAJ,GAAQ,CAAzB,KAA+B,CAAtC,CADF,KAGE4B,IAAI,GAAGK,GAAP;EACH,KAPD,MAOO;EACLP,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;;EACA,UAAI,CAACA,CAAC,GAAG,CAAL,IAAU,CAAV,GAAc3Q,KAAK,CAAC8B,MAAxB,EAAgC;EAC9BwQ,QAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,KAAiC,CAAxC;EACA4B,QAAAA,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;EACD,OAHD,MAIE2B,IAAI,GAAGC,IAAI,GAAGK,GAAd;EACH;;EACDjC,IAAAA,CAAC,IAAI,CAAL;EAEA6B,IAAAA,IAAI,GAAGH,IAAI,IAAI,CAAf;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,CAAR,KAAc,CAAf,GAAqBC,IAAI,IAAI,CAApC;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,EAAR,KAAe,CAAhB,GAAsBC,IAAI,IAAI,CAArC;EACAI,IAAAA,IAAI,GAAGJ,IAAI,GAAG,EAAd;;EAEA,QAAIxR,KAAK,CAACuR,IAAD,CAAT,EAAiB;EACfI,MAAAA,IAAI,GAAGC,IAAI,GAAG,EAAd;EACD,KAFD,MAEO,IAAI5R,KAAK,CAACwR,IAAD,CAAT,EAAiB;EACtBI,MAAAA,IAAI,GAAG,EAAP;EACD;;EAEDP,IAAAA,MAAM,GAAGA,MAAM,GACbD,OAAO,CAACvM,MAAR,CAAe4M,IAAf,CADO,GACgBL,OAAO,CAACvM,MAAR,CAAe6M,IAAf,CADhB,GAEPN,OAAO,CAACvM,MAAR,CAAe8M,IAAf,CAFO,GAEgBP,OAAO,CAACvM,MAAR,CAAe+M,IAAf,CAFzB;EAID;;EAED,SAAOP,MAAP;EACD,CA7CM;;;;;;;;;;ECzSQ,MAAMS,iBAAN,CAAwB;EAAA;EAAA,SAIrCC,iBAJqC,GAIjB,CAJiB;EAAA,SAKrCC,iBALqC,GAKjB,CALiB;EAAA;;EAuFrC;EACF;EACA;EACA;EACA;EACA;EACE,SAAOC,WAAP,CAAoB5D,GAApB,EAAyB6D,OAAzB,EAAkCC,WAAlC,EAA+C5E,OAA/C,EAAwD;EACtD,kEAAkBc,GAAlB,EAAuB,CAAvB,EAA0B6D,OAA1B,EAAmCC,WAAnC,EAAgD5E,OAAhD;EACD;;EA8BD6E,EAAAA,iBAAiB,GAAI;EACnB,SAAK1R,MAAL,CAAYkG,KAAZ,CAAkB,oBAAoB,KAAKmL,iBAA3C,EADmB;;EAInB,QAAI,KAAKA,iBAAL,GAAyB,EAA7B,EAAiC;EAC/B,WAAKrR,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,sBAAsB,KAAK0X,iBAA3B,GAA+C,iCAAlF;EACA,WAAKC,iBAAL,GAAyB3T,aAAzB,CAF+B;;EAG/B,aAAO,KAAK2T,iBAAZ;EACD;;EAED,QAAI,KAAKK,OAAL,CAAa/X,MAAb,IAAuB,IAA3B,EAAiC;EAC/B;EACA,WAAKoG,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,+BAAnC;EACA,aAAOgE,aAAP;EACD,KAJD,MAIO;EACL;EACA,YAAMiU,WAAW,GAAG,CAAC3Q,IAAI,CAACC,KAAL,CAAWD,IAAI,CAAC4Q,MAAL,KAAgB,EAA3B,IAAiC,CAAlC,IAAuC,IAA3D;EACA,WAAKP,iBAAL,IAA0BM,WAA1B;;EACA,UAAI,KAAKN,iBAAL,GAAyB1T,mBAA7B,EAAkD;EAChD,aAAKoC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,eAAO,KAAKA,iBAAZ;EACD,OAHD,MAGO;EACL,aAAKA,iBAAL,GAAyB3T,aAAzB;EACD;;EACD,WAAKqC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,aAAO,KAAKA,iBAAZ;EACD;EACF;;EAxJoC;;qDAiHZ3D,KAAKmE,YAAY;EACxC,MAAIA,UAAU,KAAK,IAAnB,EAAyB;EACvB,UAAMC,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAACD,UAAL,GAAkB,IAAlB;EACA,WAAOvD,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeuP,IAAf,CAAD,EAAuB,KAAK/R,MAA5B,CAAzB,CAAf;EACD;;EACD,MAAIkC,cAAc,CAACE,wBAAf,MAA6C,OAAOC,YAAY,CAACM,OAAb,CAAqBpH,UAArB,CAAP,KAA4C,WAAzF,IAAwG8G,YAAY,CAACM,OAAb,CAAqBpH,UAArB,MAAqC,IAAjJ,EAAuJ;EACrJ,WAAOgT,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeN,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAAf,CAAD,EAAgE,KAAKyE,MAArE,CAAzB,CAAf;EACD;;EACD,SAAO2N,GAAP;EACD;;yDAlB0BqE,aAAa;EACtC,MAAIC,KAAK,GAAG/P,cAAc,CAACoD,WAAf,CAA2BvJ,SAA3B,CAAZ;;EACA,MAAI,OAAOkW,KAAP,KAAiB,SAArB,EAAgC;EAC9BA,IAAAA,KAAK,GAAG,KAAR;EACD;;EACD,SAAO1D,QAAQ,CAACyD,WAAD,EAAcjW,SAAd,EAAyBkW,KAAK,GAAG,MAAH,GAAY,OAA1C,CAAf;EACD;;qEAdiC;EAChC,MAAItN,GAAG,CAACiC,cAAJ,IAAsB,CAACjH,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAnC,IAA4D,CAAChI,QAAQ,CAAC,KAAKiL,MAAL,CAAYjD,OAAb,CAAzE,EAAgG;EAC9F3B,IAAAA,GAAG,CAACiC,cAAJ,GAAqB,KAArB;EACA,WAAO,KAAP;EACD;;EACD,SAAO,KAAK2C,MAAL,CAAYjD,OAAZ,CAAoB4L,KAApB,CAA0B,CAAC,CAA3B,MAAkCpW,sBAAzC;EACD;;6CA/FoB6R,KAAKwE,OAAOX,SAASC,aAAa5E,SAAS;EAAA;;EAC9D,kCAAI,IAAJ,uDAAoC;EAClC,SAAK7M,MAAL,CAAYkG,KAAZ,CAAkB,uCAAuC,KAAKqD,MAAL,CAAYjD,OAArE;EACA;EACD,GAJ6D;EAO9D;;;EACA,MAAI,CAAC3G,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAjB,EAAwC;EACtC3B,IAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;EACD;EACD;EACJ;EACA;EACA;EACA;EACA;;;EAEI,MAAIkG,OAAO,IAAIA,OAAO,KAAKhP,UAA3B,EAAuC;EACrC;EACA,QAAI,CAAC8B,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IAAuC3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAA5F,EAAgG;EAC9F6L,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmE,KAAK0D,iBAAxE;;EACA,sEAAkB1D,GAAlB,EAAuB9N,SAAvB,EAAkC2R,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,KAAKC,iBAAL,EAHO,CAAV;EAID;EACF,GARD,MAQO;EACL,QAAI,CAAC/R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IACH3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAD9C,IAEJ4L,KAAK,GAAG7V,SAFR,EAEmB;EACnB;EACE8V,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmEwE,KAAnE;;EACA,sEAAkBxE,GAAlB,EAAuBwE,KAAK,GAAG,CAA/B,EAAkCX,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,EAHO,CAAV;EAIA;EACD;EACF,GArC6D;EAwC9D;;;EACA,MAAI,CAACA,WAAL,EAAkB;EAChB,QAAI9R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAhB,EAAuC;EACrC;EACAqH,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,KAAKpE,MAAL,CAAYjD,OAAxB,CAAd;EACD;;EACDqH,IAAAA,GAAG,+BAAG,IAAH,sCAAyBA,GAAzB,EAA8B6D,OAA9B,CAAH;EACD,GAND,MAMO;EACLlN,IAAAA,MAAM,CAAC0F,eAAP,GAAyB,IAAzB;EACD;;EAED2D,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAewE,KAAf,CAAd,CAnD8D;;EAqD9DxE,EAAAA,GAAG,+BAAG,IAAH,0CAA2BA,GAA3B,CAAH;EACAA,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW,IAAI5O,IAAJ,GAAWoC,OAAX,EAAX,CAAd,CAtD8D;EAuD9D;;EACA,MAAI,sBAAAmD,MAAM,CAAC+N,SAAP,wEAAkBlT,cAAlB,CAAiC,QAAjC,4BAA8CmF,MAAM,CAACgO,SAArD,sDAA8C,kBAAkBnT,cAAlB,CAAiC,QAAjC,CAA9C,CAAJ,EAA8F;EAC5F;EACA,UAAMoT,MAAM,GAAGjO,MAAM,CAAC+N,SAAP,CAAiBE,MAAjB,IAA2BjO,MAAM,CAACgO,SAAP,CAAiBC,MAA3D;EACA5E,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAe4E,MAAf,CAAd;EACD;;EACD,MAAI5E,GAAG,CAACvJ,OAAJ,CAAY,mBAAZ,MAAqC,CAAC,CAA1C,EAA6C;EAC3CuJ,IAAAA,GAAG,GAAGA,GAAG,CAACjN,OAAJ,CAAY,mBAAZ,EAAiC,QAAjC,CAAN;EACD,GA/D6D;;;EAiE9D,MAAI8R,WAAW,GAAGpP,QAAQ,CAACqP,sBAAT,CAAgC,UAAhC,CAAlB;;EACA,SAAOD,WAAW,CAAC,CAAD,CAAX,IAAkBA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAxC,EAAoD;EAClDF,IAAAA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAf,CAA0BC,WAA1B,CAAsCH,WAAW,CAAC,CAAD,CAAjD;EACD;;EACD,QAAM/I,CAAC,GAAGrG,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAV;EACA5E,EAAAA,CAAC,CAACmJ,YAAF,CAAe,MAAf,EAAuB,iBAAvB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsBjF,GAAtB;EACAlE,EAAAA,CAAC,CAACmJ,YAAF,CAAe,OAAf,EAAwB,UAAxB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsB,UAAtB;EACAnJ,EAAAA,CAAC,CAACoJ,KAAF,GAAU,IAAV;EACAzP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDtJ,CAArD;EACA,OAAKzJ,MAAL,CAAYkG,KAAZ,CAAkB,qBAAqByH,GAAvC;EACD;;EArFkByD,kBACZpR;EADYoR,kBAEZ7H;EAFY6H,kBAGZO;wBAHYP;;;wBAAAA;;;wBAAAA;;;wBAAAA;;;;ECPrB;EA+CO,MAAM4B,iBAAiB,GAAG,MAAM;EACrC,MAAIC,YAAY,GAAG,EAAnB;;EACA,MAAI/Q,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI8Q,OAAO,GAAGhR,cAAc,CAACO,IAAf,CAAoB1H,gBAApB,CAAd;;EACA,QAAImY,OAAO,IAAI,IAAf,EAAqB;EACnBA,MAAAA,OAAO,GAAG3Q,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC6O,OAAD,CAAlB,CAA4BxS,OAA5B,CAAoCjG,gBAApC,EAAsD,IAAtD,CAAX,CAAV;;EACA,UAAIyY,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC8T,QAAAA,YAAY,CAACE,EAAb,GAAkBD,OAAlB;EACD,OAFD,MAEO;EACLD,QAAAA,YAAY,GAAGC,OAAf;EACD;EACF,KAPD,MAOO;EACLD,MAAAA,YAAY,GAAG,EAAf;EACD;EACF;;EACD,SAAOA,YAAP;EACD,CAhBM;EAkBA,MAAMG,kBAAkB,GAAIC,WAAD,IAAiB;EACjD,MAAInR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,UAAMkR,MAAM,GAAG,EAAE,GAAGN,iBAAiB,EAAtB;EAA0B,SAAGK;EAA7B,KAAf;EACA,UAAMH,OAAO,GAAG3Q,IAAI,CAACC,SAAL,CAAe8Q,MAAf,CAAhB;EACApR,IAAAA,cAAc,CAACC,IAAf,CAAoBpH,gBAApB,EAAsC6I,kBAAkB,CAACsP,OAAD,CAAxD,EAH6C;;EAK7CK,IAAAA,wBAAwB;EACzB;EACF,CARM;;EAWA,MAAMA,wBAAwB,GAAG,MAAM;EAC5C,MAAIrR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4I,IAAI,GAAG9I,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAX;;EACA,QAAI8E,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB,UAAI;EACFA,QAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAP;EACA,cAAM2Y,WAAW,GAAGtR,cAAc,CAACO,IAAf,CAAoBzH,aAApB,IAAqCuH,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAArC,GAA0G,EAA9H;;EACA,YAAIgQ,IAAI,IAAI9I,cAAc,CAACE,wBAAf,EAAZ,EAAuD;EACrD,cAAIqR,YAAY,GAAG,EAAnB;EACA,cAAIP,OAAO,GAAGF,iBAAiB,EAA/B;EACAtU,UAAAA,MAAM,CAACgV,IAAP,CAAYR,OAAZ,EAAqBS,OAArB,CAA6B1T,GAAG,IAAI;EAClC,kBAAM2T,UAAU,GAAI5I,IAAI,IAAIwI,WAAR,IAAuB9U,MAAM,CAACgV,IAAP,CAAYF,WAAW,CAACxI,IAAD,CAAvB,EAA+B3K,MAAtD,IAAgEmT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAAjE,GAA2FuT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAA3F,GAAoH,EAAvI;EACA,kBAAM4T,SAAS,GAAGX,OAAO,CAACjT,GAAD,CAAP,CAAayJ,MAA/B;EACA,kBAAM9I,KAAK,GAAGD,QAAQ,EAAtB;EACA,kBAAMmT,QAAQ,GAAGZ,OAAO,CAACjT,GAAD,CAAP,CAAaW,KAAb,CAAjB;;EACA,gBAAI,OAAOiT,SAAP,KAAqB,WAAzB,EAAsC;EACpC,oBAAME,eAAe,GAAGrV,MAAM,CAACgV,IAAP,CAAYG,SAAZ,CAAxB;;EACA,mBAAK,MAAMlL,KAAX,IAAoBoL,eAApB,EAAqC;EACnC,oBAAIC,SAAS,GAAG,EAAhB;;EACA,oBAAID,eAAe,CAAC5U,cAAhB,CAA+BwJ,KAA/B,CAAJ,EAA2C;EACzC,sBAAIsL,MAAM,GAAG,CAAb;EACA,sBAAIC,MAAM,GAAG,CAAb;EACA,wBAAMC,UAAU,GAAGJ,eAAe,CAACpL,KAAD,CAAlC;;EACA,sBAAIwL,UAAU,KAAK,IAAnB,EAAyB;EACvB;EACD;;EACD,sBAAI,OAAOL,QAAP,KAAoB,WAApB,IAAmC,OAAOA,QAAQ,CAACK,UAAD,CAAf,KAAgC,WAAvE,EAAoF;EAClFF,oBAAAA,MAAM,GAAGH,QAAQ,CAACK,UAAD,CAAjB;EACD;;EACD,sBAAI,OAAON,SAAP,KAAqB,WAArB,IAAoC,OAAOA,SAAS,CAACM,UAAD,CAAhB,KAAiC,WAAzE,EAAsF;EACpFD,oBAAAA,MAAM,GAAGL,SAAS,CAACM,UAAD,CAAlB;EACD;;EACDH,kBAAAA,SAAS,GAAG,CAACG,UAAD,EAAaF,MAAb,EAAqBC,MAArB,CAAZ;EACAN,kBAAAA,UAAU,CAACO,UAAD,CAAV,GAAyBH,SAAzB;EACD;EACF;EACF;;EACDP,YAAAA,YAAY,GAAG,EAAE,GAAGA,YAAL;EAAmB,eAACxT,GAAD,GAAO2T;EAA1B,aAAf;EACD,WA5BD;EA6BAJ,UAAAA,WAAW,CAACxI,IAAD,CAAX,GAAoByI,YAApB;EACAvR,UAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF,OAtCD,CAsCE,OAAO3Q,CAAP,EAAU;EACVuR,QAAAA,OAAO,CAACnJ,KAAR,CAAc,0BAA0BpI,CAAxC;EACD;EACF;EACF;EACF,CA/CM;EAgDA,MAAMwR,mBAAmB,GAAG,MAAM;EACvC;EACA,QAAMrJ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;EAEA,MAAIqY,OAAO,GAAG,EAAd;;EACA,MAAIhR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4R,SAAS,GAAG,EAAhB;EACAd,IAAAA,OAAO,GAAGF,iBAAiB,EAA3B;EACA,UAAMsB,YAAY,GAAGpS,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAArB;EACA,UAAMuZ,YAAY,GAAGD,YAAY,GAAGjQ,kBAAkB,CAACiQ,YAAD,CAArB,GAAsC,IAAvE;EACA,UAAME,WAAW,GAAGD,YAAY,GAAGhS,IAAI,CAACK,KAAL,CAAW2R,YAAX,CAAH,GAA8B,IAA9D;EAEA,UAAME,WAAW,GAAI,CAAC,CAACzJ,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAFtD,GAGhBzU,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAMuB,WAAW,GAAI,CAAC,CAAC1J,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAFtD,GAGhBjW,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAM/T,KAAK,GAAGD,QAAQ,EAAtB;EACA,QAAIiU,QAAQ,GAAG,CAAf;EACA,QAAIC,QAAQ,GAAG,CAAf;;EACA,QAAI3B,OAAO,CAACC,EAAR,IAAcD,OAAO,CAACC,EAAR,CAAWvS,KAAX,CAAd,IAAmCsS,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3EF,MAAAA,QAAQ,GAAG1B,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAA7B;EACD;;EACD,QAAI5B,OAAO,CAACyB,EAAR,IAAczB,OAAO,CAACyB,EAAR,CAAW/T,KAAX,CAAd,IAAmCsS,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3ED,MAAAA,QAAQ,GAAG3B,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAA7B;EACD;;EACDd,IAAAA,SAAS,GAAG;EACVe,MAAAA,GAAG,EAAEH,QADK;EAEVI,MAAAA,IAAI,EAAEH,QAFI;EAGVI,MAAAA,GAAG,EAAER,WAHK;EAIVS,MAAAA,KAAK,EAAER;EAJG,KAAZ;EAMA,WAAOV,SAAP;EACD;EACF,CAzCM;EA2CA,MAAMmB,cAAc,GAAG,CAACC,UAAD,WAA4B;EAAA,MAAf;EAAEpV,IAAAA;EAAF,GAAe;EACxD,MAAIqV,KAAK,GAAG,KAAZ;;EACA,MAAI5W,QAAQ,CAAC2W,UAAD,CAAZ,EAA0B;EACxB,SAAK,MAAME,UAAX,IAAyBF,UAAzB,EAAqC;EACnC,UAAIA,UAAU,CAACjW,cAAX,CAA0BmW,UAA1B,CAAJ,EAA2C;EACzCD,QAAAA,KAAK,GAAG,IAAR;EACA,YAAIE,UAAU,GAAGH,UAAU,CAACE,UAAD,CAA3B;;EAEA,YAAIC,UAAU,IAAI,IAAlB,EAAwB;EACtB,iBAAOH,UAAU,CAACE,UAAD,CAAjB;EACA;EACD;;EACD,YAAIA,UAAU,KAAK,QAAf,IAA2B,CAACC,UAAU,CAACzH,KAAX,CAAiB,oEAAjB,CAAhC,EAAwH;EACtHuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaK,YAAb;EACD;;EAED,YAAIgK,UAAU,KAAK,UAAf,IAA6B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAlC,EAA+D;EAC7DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaM,cAAb;EACD;;EAED,YAAI+J,UAAU,KAAK,SAAf,IAA4B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAjC,EAA8D;EAC5DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaO,aAAb;EACD;;EAED,YAAI8J,UAAU,KAAK,WAAf,IAA8B,CAACC,UAAU,CAACzH,KAAX,CAAiB,+BAAjB,CAAnC,EAAsF;EACpFuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaQ,eAAb;EACD;;EAED,YAAI6J,UAAU,KAAK,KAAf,IAAwBC,UAAU,IAAI,IAA1C,EAAgD;EAC9C,cAAInW,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,YAAAA,UAAU,CAACI,GAAX,GAAiB,CAACD,UAAlB;EACD,WAFD,MAEO;EACLF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaS,SAAb;EACD;EACF,SAnCwC;;;EAqCzC,YAAI4J,UAAU,KAAK,KAAnB,EAA0B;EACxB,cAAI,CAAE,CAAE,OAAD,CAAU5V,IAAV,CAAe6V,UAAf,CAAD,IAA+B,CAACA,UAAU,GAAG,EAAd,EAAkBlV,MAAlB,KAA6B,EAA9D,KAAsE,CAACvB,YAAY,CAACyW,UAAD,CAAvF,EAAqG;EACnGF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaU,SAAb;EACD;;EAED,cAAI7M,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EAC5BH,YAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;EACF,SATD,MASO,IAAIzW,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EACnCH,UAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;;EAED,YAAID,UAAU,KAAK,OAAf,IAA0B,CAACtW,aAAa,CAACuW,UAAD,CAA5C,EAA0D;EACxD,cAAIA,UAAU,CAAClV,MAAX,GAAoB,CAApB,IAA0BkV,UAAU,CAACpR,MAAX,CAAkB,CAAlB,MAAyB,GAAvD,EAA6D;EAAE;EAC7DoR,YAAAA,UAAU,GAAGA,UAAU,CAACjV,SAAX,CAAqB,CAArB,EAAwBiV,UAAU,CAAClV,MAAnC,CAAb;;EACA,gBAAIjB,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,cAAAA,UAAU,CAACK,KAAX,GAAmB,CAACF,UAApB;EACD,aAFD,MAEO;EACLF,cAAAA,KAAK,GAAG,KAAR;EACArV,cAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF,WARD,MAQO;EACLwJ,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF;;EAED,YAAI,CAACwJ,KAAL,EAAY;EACV,iBAAOD,UAAU,CAACE,UAAD,CAAjB;EACD;EACF;EACF;EACF;;EACD,SAAOD,KAAP;EACD,CA5EM;EA8EA,MAAMK,gBAAgB,GAAIC,IAAD,IAAU;EACxC,QAAMC,WAAW,GAAG,EAApB;EACAA,EAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAAC1S,IAAxB;;EACA,MAAI0S,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACE,IAAZ,GAAmBH,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD,GALuC;;;EAOxC,MAAIgc,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFM,MAEA;EACLJ,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;;EAED,QAAMC,mBAAmB,GAAG,UAAUC,MAAV,EAAkB;EAC5C,QAAIA,MAAM,IAAI,IAAd,EAAoB;EAClB,UAAIC,OAAO,GAAG,EAAd;EACA,UAAIC,UAAU,GAAG,EAAjB;;EAEA,WAAK,IAAIlH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgH,MAAM,CAAC7V,MAA3B,EAAmC6O,CAAC,EAApC,EAAwC;EACtC,cAAMmH,GAAG,GAAGH,MAAM,CAAChH,CAAD,CAAlB;;EACA,YAAImH,GAAG,CAAC/I,IAAJ,IAAY,IAAhB,EAAsB;EACpB,gBAAMA,IAAI,GAAG+I,GAAG,CAAC/I,IAAjB;;EACA,cAAIA,IAAI,KAAK,iBAAb,EAAgC;EAC9B,mBAAO,UAAP;EACD,WAFD,MAEO,IAAIA,IAAI,KAAK,SAAb,EAAwB;EAC7B6I,YAAAA,OAAO,GAAG,GAAV;EACD,WAFM,MAEA,IAAI7I,IAAI,KAAK,aAAb,EAA4B;EACjC8I,YAAAA,UAAU,GAAG,GAAb;EACD;EACF;EACF;;EAED,UAAID,OAAO,KAAK,GAAhB,EAAqB;EACnB,eAAO,SAAP;EACD,OAFD,MAEO,IAAIC,UAAU,KAAK,GAAnB,EAAwB;EAC7B,eAAO,QAAP;EACD;EACF;EACF,GAzBD;;EA2BA,MAAIT,IAAI,CAACW,mBAAL,IAA4B,IAAhC,EAAsC;EACpCV,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACW,mBAAL,KAA6B,SAAjC,EAA4C;EAC1CV,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EAED,QAAMF,GAAG,GAAGJ,mBAAmB,CAACN,IAAI,CAACa,SAAN,CAA/B;;EACA,MAAIH,GAAG,IAAI,IAAX,EAAiB;EACfT,IAAAA,WAAW,CAACa,SAAZ,GAAwBJ,GAAxB;EACD;;EAED,QAAMK,IAAI,GAAIf,IAAI,CAACe,IAAL,IAAa,IAAd,GAAsBf,IAAI,CAACe,IAAL,CAAUrW,MAAhC,GAAyC,CAAtD;;EACA,MAAIqW,IAAI,GAAG,CAAX,EAAc;EACZd,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD,GAFD,MAEO;EACLf,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;;EAED,MAAIhB,IAAI,CAACiB,KAAL,IAAc,IAAlB,EAAwB;EACtBhB,IAAAA,WAAW,CAACiB,KAAZ,GAAoBlB,IAAI,CAACiB,KAAzB;EACD;;EAED,MAAIjB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMC,MAAM,GAAGpB,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAf,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACwV,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,GAAwBA,MAAM,CAAC,CAAD,CAA/B,CAAzB;EACD;;EACD,SAAOnB,WAAP;EACD,CAtEM;EAwEA,MAAMqB,mBAAmB,GAAG,CAACtB,IAAD,YAAsB;EAAA,MAAf;EAAE3V,IAAAA;EAAF,GAAe;EACvD,QAAM4V,WAAW,GAAG,EAApB;;EACA,MAAID,IAAI,CAACuB,WAAL,IAAoB,IAAxB,EAA8B;EAC5BtB,IAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAACuB,WAAxB;EACD;;EACD,MAAIvB,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACuB,IAAZ,GAAmBxB,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD;;EAED,MAAIgc,IAAI,CAACI,MAAL,IAAe,IAAnB,EAAyB;EACvB,QAAIJ,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFM,MAEA,IAAIL,IAAI,CAACI,MAAL,KAAgB,OAApB,EAA6B;EAClCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;EACF;;EAED,MAAIL,IAAI,CAACyB,KAAL,IAAc,IAAlB,EAAwB;EACtB,QAAIzB,IAAI,CAACyB,KAAL,CAAWC,SAAX,KAAyB,KAA7B,EAAoC;EAClCzB,MAAAA,WAAW,CAAC0B,KAAZ,GAAoB3B,IAAI,CAACyB,KAAL,CAAWzJ,GAAX,CAAe3J,KAAf,CAAqB,KAArB,EAA4B,CAA5B,CAApB;EACD;EACF;;EAED,MAAI2R,IAAI,CAAC4B,MAAL,IAAe,IAAnB,EAAyB;EACvB,SAAK,IAAIC,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAG7B,IAAI,CAAC4B,MAAL,CAAYlX,MAA9C,EAAsDmX,QAAQ,EAA9D,EAAkE;EAChE,YAAMC,QAAQ,GAAG9B,IAAI,CAAC4B,MAAL,CAAYC,QAAZ,CAAjB;;EACA,UAAIC,QAAQ,CAACnK,IAAT,KAAkB,SAAtB,EAAiC;EAC/BsI,QAAAA,WAAW,CAACiB,KAAZ,GAAoBY,QAAQ,CAAC7X,KAA7B;EACD;EACF;EACF;;EAED,MAAI+V,IAAI,CAAC+B,aAAL,IAAsB,IAA1B,EAAgC;EAC9B9B,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;;EACA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,IAAI,CAAC+B,aAAL,CAAmBrX,MAAvC,EAA+C6O,CAAC,EAAhD,EAAoD;EAClD,YAAMyI,MAAM,GAAGhC,IAAI,CAAC+B,aAAL,CAAmBxI,CAAnB,CAAf;;EACA,UAAIyI,MAAM,CAACrK,IAAP,KAAgB,MAApB,EAA4B;EAC1BsI,QAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;EACF;EACF;;EAED,MAAIhB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMc,QAAQ,GAAGjC,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAjB,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACqW,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAtB,GAA4BA,QAAQ,CAAC,CAAD,CAArC,CAAzB;EACD;;EAED,MAAIjC,IAAI,CAACkC,kBAAL,IAA2B,IAA/B,EAAqC;EACnCjC,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACkC,kBAAL,KAA4B,SAAhC,EAA2C;EACzCjC,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EACDvW,EAAAA,MAAM,CAACkG,KAAP,CAAa,uBAAuB3D,IAAI,CAACC,SAAL,CAAeoT,WAAf,CAApC;EAEA,SAAOA,WAAP;EACD,CA1DM;EA4DA,MAAMkC,oBAAoB,GAAG,CAAC1C,UAAD,EAAa2C,QAAb,KAA0B;EAC5D,MAAI7V,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAIuC,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;;EACA,UAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,QAAAA,GAAG,CAAC8B,gBAAJ,GAAuB,EAAvB;EACD;EACF,KAN4C;;;EAS7C,QAAI2O,UAAU,CAAC4C,OAAX,IAAsB,IAA1B,EAAgC;EAC9B,YAAMtE,IAAI,GAAG0B,UAAU,CAAC4C,OAAxB;;EACA,WAAK,MAAM/X,GAAX,IAAkByT,IAAlB,EAAwB;EACtB,YAAIA,IAAI,CAACvU,cAAL,CAAoBc,GAApB,CAAJ,EAA8B;EAC5BmV,UAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkByT,IAAI,CAACzT,GAAD,CAAtB;EACD;EACF;;EACD,aAAOmV,UAAU,CAAC4C,OAAlB;EACD;;EAED,SAAK,MAAM9Y,IAAX,IAAmBkW,UAAnB,EAA+B;EAC7B,UAAIA,UAAU,CAACjW,cAAX,CAA0BD,IAA1B,CAAJ,EAAqC;EACnC,YAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCD,IAApC,KAA6C,CAAC6Y,QAAlD,EAA4D;EAC1D;EACD;;EACDpT,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBvH,IAArB,IAA6BkW,UAAU,CAAClW,IAAD,CAAvC;EACD;EACF;;EACD,QAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAArB,IAAgC,IAApC,EAA0C;EACxC,aAAOrT,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAA5B;EACD;;EACD9V,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACD;EACF,CAjCM;EAmCA,MAAMwR,WAAW,GAAG,CAAC9D,UAAD,EAAa+D,YAAb,EAA2BnR,gBAA3B,KAAgD;EACzE,MAAIoN,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,QAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,UAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,UAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,QAAAA,kBAAkB,GAAG,EAArB;EACA9E,QAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,MAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,MAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;;EACD,MAAI1O,GAAG,CAACmC,cAAJ,IAAsB,IAA1B,EAAgC;EAC9B,UAAMsR,KAAK,GAAGzT,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,CAAd;;EACA,QAAIiE,KAAK,IAAI,IAAb,EAAmB;EACjBhV,MAAAA,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,EAA+BtV,MAA/B;;EACA,UAAIsV,KAAK,KAAK,eAAd,EAA+B;EAC7B,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAnD,EAAyD;EACvDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4CvV,MAA5C;EACD;EACF,OAJD,MAIO,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF,OAJM,MAIA,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF;EACF;EACF;EACF,CAjCM;EAmCA,MAAMwV,GAAG,GAAIC,OAAD,IAAa;EAC9B;EACA,MAAIA,OAAO,CAACzG,UAAR,IAAsB,IAAtB,IAA8ByG,OAAO,CAACzG,UAA1C,EAAsD;EACpDsC,IAAAA,OAAO,CAAClO,KAAR,CAAc,6BAAd,EAA6CqS,OAA7C;EACA,WAAO,IAAP;EACD;;EAED,QAAMC,QAAQ,GAAGD,OAAO,CAACrc,MAAD,CAAP,KAAoB,IAArC;;EAEA,MAAIgG,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C;EACA,QAAI;EACF,UAAIqW,cAAc,GAAGvW,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAArB;;EACA,UAAIkd,cAAc,IAAI,IAAlB,IAA0BD,QAA9B,EAAwC;EACtCC,QAAAA,cAAc,GAAG,EAAjB;;EACA,aAAK,MAAMxY,GAAX,IAAkBsY,OAAlB,EAA2B;EACzB,cAAIA,OAAO,CAACpZ,cAAR,CAAuBc,GAAvB,CAAJ,EAAiC;EAC/B,gBAAIsY,OAAO,CAACtY,GAAD,CAAP,KAAiB,CAAC,CAAtB,EAAyB;EACvB,qBAAOwY,cAAc,CAACxY,GAAD,CAArB;EACD,aAFD,MAEO;EACLwY,cAAAA,cAAc,CAACxY,GAAD,CAAd,GAAsBsY,OAAO,CAACtY,GAAD,CAA7B;EACD;EACF;EACF;;EACDiC,QAAAA,cAAc,CAACqC,gBAAf,CAAgChJ,UAAhC,EAA4Ckd,cAA5C;EACD;EACF,KAfD,CAeE,OAAO5V,CAAP,EAAU;EACVuR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAA+BpI,CAA7C;EACD;EACF;EACF,CA9BM;EA0EA,MAAM6V,OAAO,GAAG,CAACC,OAAD,EAAU3Y,MAAV,KAAqB;EAC1C,MAAI1B,QAAQ,CAACqa,OAAD,CAAR,IAAqBlZ,QAAQ,CAACkZ,OAAD,CAAjC,EAA4C;EAC1C,WAAO,QAAQA,OAAf;EACD;;EACD3Y,EAAAA,MAAM,CAACiL,KAAP,CAAaW,iBAAb;EACD,CALM;EAMA,MAAMgN,uBAAuB,GAAG,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,EAAuCpH,OAAvC,EAAgD3R,MAAhD,KAA2D;EAChG,QAAMgZ,aAAa,GAAGtL,YAAY,CAACjJ,QAAQ,CAAC6J,IAAV,CAAlC,CADgG;;EAEhG,QAAM2K,cAAc,GAAGD,aAAa,CAACnW,CAArC;EACA,QAAMqW,mBAAmB,GAAGF,aAAa,CAACG,CAA1C;EACA,QAAMC,QAAQ,GAAGJ,aAAa,CAACK,SAA/B;;EAEA,MAAI,OAAOJ,cAAP,KAA0B,WAA9B,EAA2C;EACzC,UAAMvW,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAAC/I,EAAL,GAAUgY,OAAO,CAAChY,EAAlB,CAFyC;;EAGzC+I,IAAAA,IAAI,CAACyE,WAAL,GAAmBxC,GAAG,CAACwC,WAAvB,CAHyC;;EAKzC,QAAIxC,GAAG,CAACyC,mBAAR,EAA6B;EAC3B1E,MAAAA,IAAI,CAAChG,eAAD,CAAJ,GAAwBiI,GAAG,CAACyC,mBAA5B;EACD;;EAED,QAAIuG,GAAG,GAAGgE,OAAO,CAACtX,QAAlB;;EACA,QAAI0e,WAAJ,EAAiB;EACfpL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,aAAN,EAAqBoL,WAArB,CAAd;EACD;;EACD,QAAID,SAAJ,EAAe;EACbnL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,SAAN,EAAiBmL,SAAjB,CAAd;EACD;;EACDnL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWsL,cAAX,CAAd;EACAtL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,EAAuB1C,MAAvB,CAAvB,CAAd;;EACA,QAAIkZ,mBAAJ,EAAyB;EACvBvL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWuL,mBAAX,CAAd;EACD;;EAED,QAAIL,YAAY,KAAK,IAArB,EAA2B;EACzBlL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAakL,YAAb,CAAd;EACD;;EAED,QAAIO,QAAJ,EAAc;EACZzU,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB0R,QAAQ,KAAK3d,MAArC;EACAkS,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,WAAN,EAAmByL,QAAnB,CAAd;EACD;;EACDhI,IAAAA,iBAAiB,CAACG,WAAlB,CAA8B5D,GAA9B;EACD;EACF,CAtCM;;;;;;;;;;;;;;ECvfQ,MAAM2L,cAAN,SAA6BrN,KAA7B,CAAmC;EAOhDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXsJ,MAAAA,OAFW;EAGXqI,MAAAA,OAHW;EAIXlF,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,8DAAezM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,4DAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACA,gGAAgCC,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5Cie,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,oFAA0BA,WAA1B;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAatO,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAED6M,EAAAA,YAAY,CAAEC,QAAF,EAAY;EACtB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI9U,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC,aAAO9B,GAAG,CAAC8B,gBAAJ,CAAqBgT,QAArB,CAAP;EACD;EACF;;EAsDD;EACF;EACA;EACA;EACA;EACA;EACA;EACEC,EAAAA,8BAA8B,CAAEzZ,GAAF,EAAOL,KAAP,EAAc+Z,OAAd,EAAuB;EAAA;;EACnD;EACA,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAAxB,IAAgC,2BAAC9B,GAAG,CAAC8B,gBAAL,0DAAC,sBAAsBtH,cAAtB,CAAqCc,GAArC,CAAD,CAApC,EAAgF;EAC9E;EACAmU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,qEAAd;EACD,KAHD,MAGO,IAAI,CAACrL,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA3B,IAAuCA,KAAK,IAAI,CAApD,EAAuD;EAC5DwU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,yCAAd;EACD,KAFM,MAEA;EACL;EACA,UAAI0O,OAAO,KAAK1c,iBAAhB,EAAmC;EACjC0H,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD,OAFD,MAEO;EACL+E,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD;;EACDsC,MAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C,EAPK;;EAUL,UAAI/D,IAAI,GAAG,EAAX;EACA,YAAM0S,UAAU,GAAG,EAAnB;EACA1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA8H,MAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkB;EAAE,SAAC0Z,OAAD,GAAW/Z;EAAb,OAAlB;;EACA,UAAIwV,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,QAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EAEA,gEAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,YAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,gEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEuT,EAAAA,oBAAoB,CAAEja,GAAF,EAAOka,QAAP,EAAiBR,OAAjB,EAA0B;EAC5C,UAAMS,KAAK,GAAG,EAAd;;EACA,SAAK,IAAIlL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiL,QAAQ,CAAC9Z,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,UAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAvB,CAAxC,EAAqE;EACnEkL,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAnB;EACD,OAFD,MAEO,IAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAf,CAAxC,EAAmF;EACxFD,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAX;EACD,OAFM,MAEA;EACLjG,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kDAAd;EACD;EACF;;EACD,QAAItG,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAAA;;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,4BAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB,yEAAuE,EAAvE;EACD;;EACDsJ,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4Bma,KAA5B;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBra,GAAxB,EAA6Bka,QAA7B,EAAuCR,OAAvC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,oBAAoB,CAAEC,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC/C,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,UAAMqf,aAAa,GAAG/V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAtB;EACA,UAAMJ,KAAK,GAAGnO,KAAK,CAACC,OAAN,CAAcwO,aAAd,IAA+BA,aAA/B,GAAgDA,aAAa,IAAI,IAAjB,GAAwB,CAACA,aAAD,CAAxB,GAA0C,EAAxG;;EAEA,UAAMC,QAAQ,GAAI/a,KAAD,IAAW;EAC1B,YAAMgb,eAAe,GAAG,OAAOhb,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACya,WAAN,EAA5D;;EACA,UAAI,CAACD,KAAK,CAAC/M,QAAN,CAAeuN,eAAf,CAAL,EAAsC;EACpCR,QAAAA,KAAK,CAAChS,IAAN,CAAWwS,eAAX;EACD;EACF,KALD;;EAOA,QAAI3O,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgB/T,KAAK,IAAI;EACvB,YAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D+a,UAAAA,QAAQ,CAAC/a,KAAD,CAAR;EACD,SAFD,MAEO;EACL,kEAAaqL,KAAb,CAAmB,kDAAnB;EACD;EACF,OAND;EAOD,KARD,MAQO,IAAI,OAAOwP,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEE,MAAAA,QAAQ,CAACF,OAAD,CAAR;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,wBAAnB;;EACA;EACD;;EAEDtG,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,IAAgCJ,KAAhC;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEkB,EAAAA,uBAAuB,CAAEL,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAClD,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,QAAI,CAACsJ,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCqb,OAApC,CAAL,EAAmD;EACjD,8DAAavP,KAAb,wBAAmCuP,OAAnC;;EACA;EACD;;EAED,UAAMM,WAAW,GAAIlb,KAAD,IAAW;EAC7B,YAAM+I,KAAK,GAAGhE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpW,OAA9B,CAAsCxE,KAAtC,CAAd;;EACA,UAAI+I,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChBhE,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpR,MAA9B,CAAqCT,KAArC,EAA4C,CAA5C;EACD;EACF,KALD;;EAOA,QAAIsD,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgBmH,WAAhB;EACD,KAFD,MAEO,IAAI,OAAOL,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEK,MAAAA,WAAW,CAACL,OAAD,CAAX;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,0BAAnB;;EACA;EACD,KAxBiD;;;EA2BlD,QAAItG,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8Bna,MAA9B,KAAyC,CAA7C,EAAgD;EAC9C,aAAOsE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;EACEoB,EAAAA,uBAAuB,CAAEP,OAAF,EAAWb,OAAX,EAAoB;EAAA;;EACzC,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAI,EAACsJ,GAAD,aAACA,GAAD,iDAACA,GAAG,CAAE8B,gBAAN,2DAAC,uBAAuBtH,cAAvB,CAAsCqb,OAAtC,CAAD,CAAJ,EAAqD;EACnD,8DAAavP,KAAb,wBAAmCuP,OAAnC;EACD,KAFD,MAEO;EACL,aAAO7V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiC,IAAjC,EAAuCb,OAAvC;EACD;;EAEDW,EAAAA,kBAAkB,CAAEE,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC7C;EACA,QAAIjX,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA1S,IAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ,CAJ6C;;EAO7C8H,IAAAA,UAAU,CAACoF,OAAD,CAAV,GAAsB;EAAE,OAACb,OAAD,GAAWA,OAAO,KAAKrc,cAAZ,GAA6B,IAA7B,GAAoCmd;EAAjD,KAAtB;;EACA,QAAIrF,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,MAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,IAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,8DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,UAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,8DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;EAzS+C;;6DAiD1BqU,YAAY;EAChC,MAAI/O,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAI,CAACjc,aAAa,CAACqc,eAAD,CAAd,IAAoC,CAACA,eAAe,CAACpQ,KAAzD,EAAiE;EAC/DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA0C,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB;;EACA,gBAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,cAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EACF;EACF;EACF;;;;;;;;;;;;;;;;;;;;;;ECrFY,MAAM2U,gBAAN,SAA+BrP,KAA/B,CAAqC;EAQlDvS,EAAAA,WAAW,OAOX8S,MAPW,EAOH;EAAA,QAPK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGXnI,MAAAA,OAHW;EAIXxJ,MAAAA,MAJW;EAKXuJ,MAAAA;EALW,KAOL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,gEAAgBD,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,gEAAgBnI,OAAhB;EACA,8DAAexJ,MAAf;EACA,oEAAkBwM,MAAlB;EACA,8DAAejD,MAAf;EACD,GAvBiD;;;EA0LlDgS,EAAAA,KAAK,GAAI;EACP,4DAAarV,KAAb,CAAmB,wCAAnB;;EACA;;EACAhE,IAAAA,cAAc,CAACsD,WAAf,CAA2B9K,KAA3B,EAAkC,IAAlC;EACD;;EAkED0N,EAAAA,IAAI,GAAkB;EAAA,sCAAbmR,WAAa;EAAbA,MAAAA,WAAa;EAAA;;EACpB,8EAAwBA,WAAxB;;EACA,WAAO,CAAP;EACD;;EAED5M,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EA1QiD;;2CA0BrCqO,YAAY;EACvB,MAAIvJ,WAAW,GAAG,IAAlB;EACAvP,EAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;;EACA,QAAM+J,MAAM,GAAIC,GAAD,IAAS;EACtB,QAAI7V,CAAC,GAAG1D,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAR;EACA,UAAM4gB,CAAC,GAAGxZ,cAAc,CAAC2C,kBAAf,CAAkChK,YAAlC,CAAV;EACA,QAAI8gB,GAAJ;;EACA,QAAI/V,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACA+V,MAAAA,GAAG,GAAGF,GAAN;EACD,KAHD,MAGO;EACL;EACAE,MAAAA,GAAG,GAAG/V,CAAC,CAACjM,EAAR;EACA,UAAIiiB,aAAa,GAAG,KAApB;EACA,UAAIC,YAAY,GAAG,KAAnB;;EACA,UAAIF,GAAG,IAAI,IAAX,EAAiB;EACfA,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACAG,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACD,UAAIjX,GAAG,CAAC3I,SAAJ,IAAiB,IAAjB,IAAyBkG,cAAc,CAACE,wBAAf,EAA7B,EAAwE;EACtEuC,QAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,UAAI2f,aAAJ,EAAmB;EACjB,YAAKF,CAAD,IAAO,IAAX,EAAiB;EACf;EACA/W,UAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBD,CAAvB;EACA/W,UAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD;EACF,OAND,MAMO;EACL;EACA;EACA,aAAK,MAAM1C,GAAX,IAAkBwX,GAAlB,EAAuB;EACrB,cAAIA,GAAG,CAACtc,cAAJ,CAAmB8E,GAAnB,CAAJ,EAA6B;EAC3B,kBAAMtK,EAAE,GAAG8hB,GAAG,CAACxX,GAAD,CAAd;;EACA,gBAAIU,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBvO,EAApB,CAAJ,EAA6B;EAC3BgiB,cAAAA,GAAG,GAAGhiB,EAAN;EACAkiB,cAAAA,YAAY,GAAG,IAAf;EACA;EACD;EACF;EACF;EACF;;EAED,UAAIA,YAAJ,EAAkB;EAChB,YAAIF,GAAG,KAAKhX,GAAG,CAAC3I,SAAJ,CAAcgN,UAAd,EAAZ,EAAwC;EACtC;EACA;EACA;EACD,SAJD,MAIO;EACLyI,UAAAA,WAAW,GAAG,KAAd;EACAvP,UAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;EACD;;EACD,cAAMqK,UAAU,GAAGnX,GAAG,CAAC3I,SAAJ,CAAcqM,GAAd,CAAkBsT,GAAlB,CAAnB;EACAhX,QAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBG,UAAvB;EACA5Z,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CihB,UAA9C;EACA,gEAAaxV,OAAb,GAAuBwV,UAAvB;EAEA,cAAMxR,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E;EACA,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB;;EACA,oEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF,OApBD,MAoBO;EACL,YAAI,CAACqR,aAAL,EAAoB;EAClB,eAAKL,KAAL;EACD,SAFD,MAEO;EACL,cAAKG,CAAD,IAAO,IAAX,EAAiB;EACf,oEAAapV,OAAb,GAAuBoV,CAAvB;EACAxZ,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6gB,CAA9C;EACAjK,YAAAA,WAAW,GAAG,KAAd;EACD;EACF;;EACDvP,QAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACA4e,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACD;EACF;;EACD7V,IAAAA,CAAC,CAACjM,EAAF,GAAOgiB,GAAP;EACAzZ,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzJ,YAAhC,EAA8C8K,CAA9C;EACD,GA7ED;;EA+EA,MAAIqG,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAIjc,aAAa,CAACqc,eAAD,CAAb,IAAmC,CAACA,eAAe,CAACpQ,KAAxD,EAAgE;EAC9DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA,gBAAMqG,GAAG,GAAG,EAAZ;;EACA,cAAIvZ,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAIgT,UAAU,CAAC2G,QAAf,EAAyB;EACvBN,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAAC2G,QAApB;EACD;;EACD,gBAAI3G,UAAU,CAACyB,KAAf,EAAsB;EACpB4E,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAACyB,KAApB;EACD;;EACD,gBAAIzB,UAAU,CAAC+B,IAAf,EAAqB;EACnBsE,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAAC+B,IAA5B;EACD;;EACD,gBAAI/B,UAAU,CAACU,IAAf,EAAqB;EACnB2F,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAACU,IAA5B;EACD;;EACD,gBAAI2F,GAAG,CAACpb,MAAJ,GAAa,CAAjB,EAAoB;EAClBmb,cAAAA,MAAM,CAACC,GAAD,CAAN;EACD;EACF;;EACD3D,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB,EA7BsD;EA+BtD;EACA;;;EACA,cAAI+O,WAAJ,EAAiB;EACf/O,YAAAA,IAAI,CAACxG,MAAD,CAAJ,GAAe,IAAf;EACD;;EACD,gBAAM8d,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,cAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB,CAvCsD;EA0CtD;EACA;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD,EAAgE8K,WAAhE;EACD;EACF;EACF;EACF;EACF;;mEAQyB;EACxB9M,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACAyN,EAAAA,OAAO,CAAClO,KAAR,CAAc,wBAAd;;EACA,MAAIhE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;;EACA,4DAAc0F,sBAAd,CAAqC,EAArC;EACD;;6CAEc;EACbhG,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;;EACA,0DAAaT,KAAb,CAAmB,uBAAnB;;EACAvB,EAAAA,GAAG,CAACC,WAAJ,GAAkB;EAChB0B,IAAAA,OAAO,EAAE,IADO;EAEhBC,IAAAA,KAAK,EAAE,CAFS;EAGhBC,IAAAA,MAAM,EAAE;EAHQ,GAAlB;;EAKA,MAAItE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAACxH,YAAD,CAAnB;EACA,WAAOwH,YAAY,CAACvH,YAAD,CAAnB;EACA,WAAOuH,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BnI,YAA5B,EAA0C8J,GAAG,CAACM,WAA9C;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4BlI,YAA5B,EAA0C2T,WAAW,EAArD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;EACA,0DAAaqB,OAAb,GAAuB,IAAvB;;EACA,4DAAcqE,sBAAd,CAAqC,EAArC;EACD;;yDAEmBsR,UAAU;EAC5B,MAAIhQ,KAAK,CAACC,OAAN,CAAc+P,QAAd,KAA2BA,QAAQ,CAAC5b,MAAT,GAAkB,CAAjD,EAAoD;EAClD,UAAM+U,UAAU,GAAG6G,QAAQ,CAACC,GAAT,EAAnB;EACA,UAAMC,cAAc,GAAG/G,UAAU,IAAI,IAAd,IAAsB3W,QAAQ,CAAC2W,UAAD,CAA9B,KACjBA,UAAU,CAAC8F,IAAX,IAAmB,IAAnB,IAA2Bxc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC8F,IAAvB,EAA6B7a,MAA7B,GAAsC,CAAlE,IACI+U,UAAU,CAAC+F,QAAX,IAAuB,IAAvB,IAA+Bzc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC+F,QAAvB,EAAiC9a,MAAjC,GAA0C,CAD7E,IAEI+U,UAAU,CAAC,aAAD,CAAV,IAA6B,IAA7B,IAAqC1W,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC,aAAD,CAAtB,EAAuC/U,MAAvC,GAAgD,CAHvE,CAAvB;;EAIA,QAAI8b,cAAJ,EAAoB;EAClBja,MAAAA,cAAc,CAACyD,uBAAf;;EACA,UAAI;EACF,oEAAiB,CAACyP,UAAD,CAAjB;EACD,OAFD,CAEE,OAAOvS,CAAP,EAAU;EACV,gEAAaqD,KAAb,CAAmBrD,CAAnB;EACD;EACF,KAPD,MAOO;EACL,8DAAaoI,KAAb,CAAmB,uCAAnB;EACD;EACF;EACF;;EC9RI,MAAMmR,mBAAN,SAAkCC,WAAlC,CAA8C;EACnD3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKb4iB,OALa,GAKH,IALG;EAAA,SAMbC,QANa,GAMF,IANE;EAAA,SAObC,MAPa,GAOJ,IAPI;EAAA,SAQbC,KARa,GAQL,IARK;EAAA,SASbC,SATa,GASD,IATC;EAAA,SAUbC,cAVa,GAUI,IAVJ;EAEb,SAAKH,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EASC,MAAIC,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKuc,oBAAL;EACD;EACF;;EAED,MAAIvT,OAAJ,GAAe;EACb,WAAO,KAAK+S,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI/S,OAAJ,CAAahJ,GAAb,EAAkB;EAChB,SAAK+b,QAAL,GAAgB/b,GAAhB;EACD;;EAED,MAAIwc,KAAJ,GAAa;EACX,WAAO,KAAKF,MAAL,CAAYG,OAAnB;EACD;;EAED,MAAIC,OAAJ,GAAe;EACb,WAAO,KAAKJ,MAAL,CAAYK,UAAnB;EACD;;EAED,MAAIC,UAAJ,GAAkB;EAChB,WAAO,KAAKN,MAAL,CAAYO,OAAZ,CAAoBD,UAA3B;EACD;;EAEDL,EAAAA,oBAAoB,GAAI;EACtB,UAAM5I,UAAU,GAAG,KAAK2I,MAAL,CAAYG,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAnB;EACA,UAAM+C,gBAAgB,GAAG,KAAKyC,OAAL,CAAa8T,SAAtC;EAEA,SAAKd,MAAL,CAAYe,SAAZ,GAAwB,KAAKC,wBAAL,EAAxB;EACA,SAAKf,KAAL,GAAa,KAAKgB,UAAL,CAAgBpF,cAAhB,CAA+B,gBAA/B,CAAb;EACA,SAAKqE,SAAL,GAAiB,KAAKe,UAAL,CAAgBpF,cAAhB,CAA+B,WAA/B,CAAjB;EACA,SAAKqF,SAAL,GAAiB,KAAKD,UAAL,CAAgBpF,cAAhB,CAA+B,OAA/B,CAAjB;EAEA,SAAKoE,KAAL,CAAWkB,gBAAX,CAA4B,MAA5B,EAAoC,KAAKC,4BAAL,EAApC;EACA,SAAKjB,cAAL,GAAsB,IAAIkB,cAAJ,CAAmB,MAAM,KAAKC,YAAL,CAAkB,KAAKrB,KAAvB,EAA8B,KAAKC,SAAnC,CAAzB,CAAtB;EACA,SAAKC,cAAL,CAAoBoB,OAApB,CAA4B,KAAKtB,KAAjC;EAEA,SAAKiB,SAAL,CAAeC,gBAAf,CAAgC,OAAhC,EAAyC,MAAM;EAC7C,WAAKhB,cAAL,CAAoBqB,SAApB,CAA8B,KAAKvB,KAAnC;EACArZ,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDZ,OAAlD,GAA4D,MAA5D;EACA,WAAKva,MAAL;;EACA,UAAIqR,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,YAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,cAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,cAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,YAAAA,kBAAkB,GAAG,EAArB;EACA9E,YAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,UAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,UAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;EACF,KAjBD;EAmBA/O,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;;EAEA,QAAI,KAAKE,UAAT,EAAqB;EACnB,WAAKX,KAAL,CAAWkB,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,aAAKb,MAAL,CAAYO,OAAZ,CAAoB/Y,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAY,KAAKf,UAAjB,EAA6B,QAA7B,CAA7B,GAAsE9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B,KAAK8O,UAAzG;EACA9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAHD;EAID;EACF;;EAEDY,EAAAA,YAAY,CAAErB,KAAF,EAASC,SAAT,EAAoB;EAC9B,UAAM4B,KAAK,GAAG,KAAKC,qBAAL,CAA2B9B,KAA3B,CAAd;EACAC,IAAAA,SAAS,CAACuB,KAAV,CAAgBO,WAAhB,CAA4B,OAA5B,YAAwCF,KAAxC;EACD;;EAEDd,EAAAA,wBAAwB,GAAI;EAC1B,+BACI,KAAKV,MAAL,CAAY2B,UAAZ,CAAuBC,GAD3B,uBAEI,KAAK5B,MAAL,CAAY2B,UAAZ,CAAuBE,IAF3B;EAID;;EAEDf,EAAAA,4BAA4B,GAAI;EAC9B,WAAO,MAAM;EACX,YAAMU,KAAK,GAAG,KAAKC,qBAAL,CAA2B,KAAK9B,KAAhC,CAAd;EACA,WAAKA,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,OAA7B,YAAyCF,KAAzC;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,OAAjC,YAA6CF,KAA7C;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,QAAjC,EAA2C,MAA3C;EACA,WAAK9B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,UAAjC,EAA6C,OAA7C;EACA,WAAK/B,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,YAA7B,EAA2C,SAA3C;EACA,WAAKd,SAAL,CAAeO,KAAf,CAAqBO,WAArB,CAAiC,YAAjC,EAA+C,SAA/C;EACApb,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDW,UAAlD,GAA+D,SAA/D;EACD,KATD;EAUD;;EAEDL,EAAAA,qBAAqB,CAAEM,GAAF,EAAO;EAC1B,UAAMC,KAAK,GAAGD,GAAG,CAACE,YAAJ,GAAmBF,GAAG,CAACG,aAArC;EACA,WAAOH,GAAG,CAACI,MAAJ,GAAaH,KAApB;EACD;;EAlHgD;;ECL9C,MAAMI,OAAN,SAAsB7C,WAAtB,CAAkC;EACvC3iB,EAAAA,WAAW,CAAEylB,MAAF,EAAUC,OAAV,EAAmB;EAC5B;EAD4B,SAQ9BC,OAR8B,GAQpB,IARoB;EAAA,SAS9BC,QAT8B,GASnB,IATmB;EAE5B,SAAK9C,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACA,SAAKsC,MAAL,GAAcA,MAAd;EACA,SAAKC,OAAL,GAAeA,OAAf;EACA,SAAKG,aAAL,CAAmBH,OAAnB;EACD;;EAKD,MAAIlC,OAAJ,GAAe;EACb,WAAO,KAAKkC,OAAL,CAAajC,UAApB;EACD;;EAED,MAAIhJ,UAAJ,GAAkB;EAChB,WAAO,KAAKiL,OAAL,CAAanC,OAApB;EACD;;EAEDuC,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDH,EAAAA,aAAa,CAAEI,GAAF,EAAO;EAClB,SAAKN,OAAL,GAAe,KAAKG,QAAL,CAAc,KAAd,EAAqB,gBAArB,CAAf;;EAEA,YAAQG,GAAG,CAACC,YAAZ;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,gBAAMR,OAAO,GAAG,KAAKS,mBAAL,CAAyBF,GAAG,CAACA,GAAJ,CAAQ,CAAR,CAAzB,CAAhB;EACA,eAAKN,OAAL,CAAatM,WAAb,CAAyBqM,OAAzB;EACD;EANH;;EASA,UAAMU,SAAS,GAAG,KAAKN,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAM,IAAAA,SAAS,CAACvC,SAAV,mBAA+BwC,sBAAsB,CAACJ,GAAG,CAAChmB,EAAJ,CAAOqK,KAAP,CAAa,GAAb,EAAkB,CAAlB,CAAD,CAArD;;EACA,QAAI,CAAC2b,GAAG,CAACK,MAAT,EAAiB;EACf,YAAMC,YAAY,GAAG,KAAKT,QAAL,CAAc,MAAd,EAAsB,cAAtB,CAArB;EACAM,MAAAA,SAAS,CAAC/M,WAAV,CAAsBkN,YAAtB;EACD;;EAED,SAAKZ,OAAL,CAAatM,WAAb,CAAyB+M,SAAzB;EACA,SAAKtD,MAAL,CAAYzJ,WAAZ,CAAwB,KAAKsM,OAA7B;EACD;;EAEDQ,EAAAA,mBAAmB,CAAEF,GAAF,EAAO;EACxB,UAAMP,OAAO,GAAG,KAAKI,QAAL,CAAc,KAAd,EAAqB,SAArB,CAAhB;;EAEA,QAAIG,GAAG,CAACO,QAAR,EAAkB;EAChB,YAAMC,cAAc,GAAG,KAAKC,QAAL,CAAcT,GAAG,CAACO,QAAlB,EAA4B,SAA5B,CAAvB;EACAd,MAAAA,OAAO,CAACrM,WAAR,CAAoBoN,cAApB;EACD;;EACD,UAAME,oBAAoB,GAAG,KAAKb,QAAL,CAAc,KAAd,EAAqB,sBAArB,CAA7B;;EACA,QAAIG,GAAG,CAACW,OAAR,EAAiB;EACf,YAAMC,aAAa,GAAG,KAAKH,QAAL,CAAcT,GAAG,CAACW,OAAlB,EAA2B,SAA3B,CAAtB;EACAD,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EACD;;EACD,UAAMC,gBAAgB,GAAG,KAAKhB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;;EACA,QAAIG,GAAG,CAACc,KAAR,EAAe;EACb,YAAMA,KAAK,GAAG,KAAKjB,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAd;EACAiB,MAAAA,KAAK,CAACC,SAAN,GAAkBf,GAAG,CAACc,KAAtB;EACAD,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B0N,KAA7B;EACD;;EACD,QAAId,GAAG,CAACgB,WAAR,EAAqB;EACnB,YAAMA,WAAW,GAAG,KAAKnB,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAmB,MAAAA,WAAW,CAACD,SAAZ,GAAwBf,GAAG,CAACgB,WAA5B;EACAH,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B4N,WAA7B;EACD;;EACD,QAAIhB,GAAG,CAACc,KAAJ,IAAad,GAAG,CAACgB,WAArB,EAAkC;EAChCN,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EACD;;EAED,QAAIb,GAAG,CAACW,OAAJ,IAAeX,GAAG,CAACc,KAAnB,IAA4Bd,GAAG,CAACgB,WAApC,EAAiD;EAC/CvB,MAAAA,OAAO,CAACrM,WAAR,CAAoBsN,oBAApB;EACD;;EACD,QAAIV,GAAG,CAACiB,OAAJ,IAAejB,GAAG,CAACiB,OAAJ,CAAYvgB,MAA/B,EAAuC;EACrC,YAAMwgB,gBAAgB,GAAG,KAAKC,UAAL,CAAgBnB,GAAG,CAACiB,OAApB,CAAzB;EACAxB,MAAAA,OAAO,CAACrM,WAAR,CAAoB8N,gBAApB;EACD;;EACD,WAAOzB,OAAP;EACD;;EAED0B,EAAAA,UAAU,GAAgB;EAAA,QAAdF,OAAc,uEAAJ,EAAI;EACxB,UAAMC,gBAAgB,GAAG,KAAKrB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;EACA,QAAIuB,aAAa,GAAG,KAApB;EACAH,IAAAA,OAAO,CAACjN,OAAR,CAAgB,CAACqN,CAAD,EAAI9R,CAAJ,KAAU;EACxB,YAAM+R,MAAM,GAAG,KAAKzB,QAAL,CAAc,QAAd,mBAAkCtQ,CAAlC,GAAuC,QAAvC,CAAf;EACA+R,MAAAA,MAAM,CAACP,SAAP,GAAmBM,CAAC,CAACE,IAArB;;EACA,UAAIhS,CAAC,GAAG,CAAR,EAAW;EACT+R,QAAAA,MAAM,CAAChD,KAAP,CAAakD,OAAb,IAAwB,mBAAxB;EACD;;EACD,UAAIH,CAAC,CAACI,MAAF,KAAa,MAAjB,EAAyB;EACvBL,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACDF,MAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BkO,MAA7B;EACD,KAVD;;EAWA,QAAIF,aAAJ,EAAmB;EACjB,WAAKM,WAAL,CAAiBR,gBAAjB;EACD;;EACD,WAAOA,gBAAP;EACD;;EAEDQ,EAAAA,WAAW,CAAER,gBAAF,EAAoB;EAC7B,SAAKvB,QAAL,GAAgB,KAAKE,QAAL,CAAc,KAAd,qBAAiC,KAAKrL,UAAtC,GAAoD,UAApD,CAAhB;EACA,SAAKmL,QAAL,CAAc/B,SAAd,GAA0B+D,YAA1B;EACA,UAAMC,YAAY,GAAG,KAAK/B,QAAL,CAAc,MAAd,yBAAsC,KAAKrL,UAA3C,GAAyD,cAAzD,CAArB;EACAoN,IAAAA,YAAY,CAACb,SAAb,GAAyB,qBAAzB;EACA,SAAKpB,QAAL,CAAcvM,WAAd,CAA0BwO,YAA1B;EACAV,IAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B,KAAKuM,QAAlC;EACD;;EAEDc,EAAAA,QAAQ,CAAEzS,GAAF,EAAOL,IAAP,EAAa;EACnB,UAAM6S,cAAc,GAAG,KAAKX,QAAL,CAAc,KAAd,YAAwBlS,IAAxB,eAAvB;EACA,UAAM8J,KAAK,GAAG,KAAKoI,QAAL,CAAc,KAAd,EAAqBlS,IAArB,CAAd;EACA8J,IAAAA,KAAK,CAACxE,YAAN,CAAmB,KAAnB,EAA0BjF,GAA1B,EAHmB;;EAKnByJ,IAAAA,KAAK,CAACxE,YAAN,CAAmB,SAAnB,EAA8B,MAA9B;EACAuN,IAAAA,cAAc,CAACpN,WAAf,CAA2BqE,KAA3B;EACA,WAAO+I,cAAP;EACD;;EAEDqB,EAAAA,iBAAiB,CAAEC,IAAF,EAAQC,SAAR,EAAmB;EAClC,YAAQ,KAAKtC,OAAL,CAAaQ,YAArB;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,eAAK+B,6BAAL,CAAmCF,IAAnC,EAAyCC,SAAzC;EACD;EALH;EAOD;;EAEDC,EAAAA,6BAA6B,CAAEF,IAAF,EAAQC,SAAR,EAAmB;EAC9C,UAAM/B,GAAG,GAAG,KAAKP,OAAL,CAAaO,GAAb,CAAiB,CAAjB,CAAZ;EACA,UAAMiC,OAAO,GAAG;EAAE5E,MAAAA,KAAK,EAAE,KAAK7I,UAAd;EAA0B+I,MAAAA,OAAO,EAAE,KAAKA;EAAxC,KAAhB;;EACA,QAAIuE,IAAI,CAACI,OAAL,KAAiB,QAArB,EAA+B;EAC7B,YAAMloB,EAAE,GAAG8nB,IAAI,CAAC9nB,EAAL,CAAQqK,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAX;EACA,YAAMid,MAAM,GAAGtB,GAAG,CAACiB,OAAJ,CAAYjnB,EAAZ,CAAf;EACAioB,MAAAA,OAAO,CAACE,EAAR,GAAa;EACXC,QAAAA,QAAQ,EAAEd,MAAM,CAACC;EADN,OAAb;;EAGA,UAAID,MAAM,CAACG,MAAP,KAAkB,KAAtB,EAA6B;EAC3BH,QAAAA,MAAM,CAACe,eAAP,GAAyB1d,MAAM,CAAC6Z,IAAP,CAAY8C,MAAM,CAACtT,GAAnB,EAAwB,QAAxB,CAAzB,GAA8DrJ,MAAM,CAACG,QAAP,GAAkBwc,MAAM,CAACtT,GAAvF;EACD,OAFD,MAEO,IAAIsT,MAAM,CAACG,MAAP,KAAkB,MAAtB,EAA8B;EACnC9c,QAAAA,MAAM,CAAC2d,KAAP;EACAC,QAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BnB,MAAM,CAACoB,aAArC;EACA,aAAK/C,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACApM,QAAAA,UAAU,CAAC,MAAM;EACf,eAAKkN,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACD,SAFS,EAEP,IAFO,CAAV;EAGD;EACF,KAhBD,MAgBO,IAAIiD,IAAI,CAACI,OAAL,KAAiB,kBAAjB,IAAuClC,GAAG,CAACvC,UAA/C,EAA2D;EAChEuC,MAAAA,GAAG,CAACqC,eAAJ,GAAsB1d,MAAM,CAAC6Z,IAAP,CAAYwB,GAAG,CAACvC,UAAhB,EAA4B,QAA5B,CAAtB,GAA+D9Y,MAAM,CAACG,QAAP,GAAkBkb,GAAG,CAACvC,UAArF;EACD;;EACD,QAAIsE,SAAJ,EAAe;EACbtN,MAAAA,OAAO,CAACkO,GAAR,CAAY,sEAAZ,EAAoFV,OAApF;EACD,KAFD,MAEO;EACLtd,MAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD;EACF;;EAnKsC;;ECDlC,MAAMW,aAAa,GAAG,UAAqH;EAAA,MAApH;EAAEC,IAAAA,eAAF;EAAmBC,IAAAA,WAAnB;EAAgCC,IAAAA,UAAhC;EAA4CC,IAAAA,gBAA5C;EAA8DC,IAAAA,WAA9D;EAA2EC,IAAAA,eAA3E;EAA4FC,IAAAA;EAA5F,GAAoH;EAChJ,kNAM0BN,eAN1B,2CAO0BC,WAP1B,w/BA2CeC,UA3Cf,mLAiDeC,gBAjDf,0FAoD0BC,WApD1B,gCAqDeC,eArDf,87CAyG0BC,iBAzG1B;EAmHD,CApHM;EAsHA,MAAMC,oBAAoB,GAAG,WAa9B;EAAA,MAb+B;EACnCC,IAAAA,oBADmC;EAEnCC,IAAAA,gBAFmC;EAGnCC,IAAAA,qBAHmC;EAInCC,IAAAA,gBAJmC;EAKnCC,IAAAA,cALmC;EAMnCC,IAAAA,kBANmC;EAOnCC,IAAAA,oBAPmC;EAQnCC,IAAAA,qBARmC;EASnCC,IAAAA,wBATmC;EAUnCC,IAAAA,0BAVmC;EAWnCC,IAAAA,2BAXmC;EAYnCC,IAAAA;EAZmC,GAa/B;EACJ,8QAQ4BX,oBAR5B,6CAS4BC,gBAT5B,6iBAgC4BC,qBAhC5B,4DAiC2CA,qBAjC3C,kCAkCiBC,gBAlCjB,oLA0CiBC,cA1CjB,mtCA4F6CJ,oBA5F7C,kBA4FyEA,oBA5FzE,qBA4FwGA,oBA5FxG,6LAmG8CA,oBAnG9C,kBAmG0EA,oBAnG1E,qBAmGyGA,oBAnGzG,sRA6G4BK,kBA7G5B,kCA8GiBC,oBA9GjB,uJAmHkBC,qBAAqB,GAAG,eAAeA,qBAAlB,GAA0C,MAnHjF,2GAuH4BC,wBAvH5B,kCAwHiBC,0BAxHjB,mCAyHkBC,2BAA2B,GAAG,eAAeA,2BAAlB,GAAgD,MAzH7F,4uBAiJsDC,oBAjJtD;EAuJD,CArKM;;EChHA,MAAMC,KAAN,SAAoBvH,WAApB,CAAgC;EACrC3iB,EAAAA,WAAW,CAAEsG,MAAF,EAAU;EACnB;EADmB,SAMrB6jB,WANqB,GAMP,KANO;EAAA,SAOrBC,kBAPqB,GAOA,KAPA;EAAA,SAQrBC,gBARqB,GAQF,IARE;EAAA,SASrBC,gBATqB,GASF,EATE;EAAA,SAUrBC,eAVqB,GAUH,CAVG;EAAA,SAWrBvC,SAXqB,GAWT,KAXS;EAAA,SAYrBwC,qBAZqB,GAYG,EAZH;EAAA,SAerBC,aAfqB,GAeL,IAfK;EAAA,SAgBrB9c,KAhBqB,GAgBb,IAhBa;EAAA,SAiBrB+c,aAjBqB,GAiBL,IAjBK;EAAA,SAkBrBC,SAlBqB,GAkBT,IAlBS;EAAA,SAmBrBC,aAnBqB,GAmBL,IAnBK;EAAA,SAoBrBC,QApBqB,GAoBV,IApBU;EAAA,SAqBrBC,mBArBqB,GAqBC,IArBD;;EAAA,SAsWrBC,0BAtWqB,GAsWQ,CAAC,MAAM;EAClC,aAAQ5hB,CAAD,IAAO;EACZ,YAAIA,CAAC,CAAC6hB,YAAF,GAAiBrX,QAAjB,CAA0B,KAAKhG,KAA/B,CAAJ,EAA2C;EACzC;EACA,gBAAMoa,IAAI,GAAG5e,CAAC,CAAC4e,IAAF,IAAW5e,CAAC,CAAC6hB,YAAF,IAAkB7hB,CAAC,CAAC6hB,YAAF,EAA1C;;EACA,cAAIjD,IAAI,CAACphB,MAAT,EAAiB;EACf,kBAAM1G,EAAE,GAAG8nB,IAAI,CAAC,CAAD,CAAJ,CAAQ9nB,EAAnB;;EACA,gBAAIA,EAAE,KAAK,YAAX,EAAyB;EACvB,mBAAKgrB,WAAL;EACD,aAFD,MAEO,IAAIhrB,EAAE,CAACirB,UAAH,CAAc,WAAd,CAAJ,EAAgC;EACrC,mBAAKC,eAAL,GAAuB,KAAKL,mBAA5B;EACA,mBAAKA,mBAAL,GAA2B/C,IAAI,CAAC,CAAD,CAA/B;EACA,mBAAKqD,oBAAL,CAA0BrD,IAAI,CAAC,CAAD,CAAJ,CAAQf,SAAlC;EACD,aAJM,MAIA;EACL,oBAAMqE,KAAK,GAAGtD,IAAI,CAACuD,MAAL,CAAa7L,CAAD;EAAA;;EAAA,uBAAO,UAAAA,CAAC,CAACxf,EAAF,gDAAMirB,UAAN,CAAiB,SAAjB,MAA+BzL,CAAC,CAAC0I,OAAF,KAAc,kBAApD;EAAA,eAAZ,CAAd;;EACA,kBAAIkD,KAAK,CAAC1kB,MAAV,EAAkB;EAChB,sBAAM4kB,SAAS,GAAGF,KAAK,CAACA,KAAK,CAAC1kB,MAAN,GAAe,CAAhB,CAAvB;EACA4kB,gBAAAA,SAAS,CAACzD,iBAAV,CAA4BuD,KAAK,CAAC,CAAD,CAAjC,EAAsC,KAAKrD,SAA3C;EACD;EACF;EACF;EACF,SAnBD,MAmBO,IAAI,KAAKwD,gBAAL,CAAsBriB,CAAtB,KAA4B,KAAKghB,WAArC,EAAkD;EACvD,cAAI,KAAKC,kBAAT,EAA6B;EAC3B,iBAAKA,kBAAL,GAA0B,KAA1B;EACD,WAFD,MAEO;EACL,iBAAKa,WAAL,CAAiB9hB,CAAjB;EACD;EACF;EACF,OA3BD;EA4BD,KA7B4B,GAtWR;;EAAA,SAmerBsiB,aAneqB,GAmeJC,QAAD,IAAc;EAC5B,UAAI,KAAKd,aAAL,KAAuB,IAA3B,EAAiC;EAC/B,aAAKA,aAAL,CAAmB5D,SAAnB,GAA+B0E,QAAQ,GAAG,CAAX,GAAe,IAAf,GAAsBA,QAArD;EACA,cAAMC,uBAAuB,GAAGD,QAAQ,GAAG,CAAX,IAAgBhiB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAAhD;EACA,aAAKG,aAAL,CAAmBrG,KAAnB,CAAyBZ,OAAzB,GAAmCgI,uBAAuB,GAAG,MAAH,GAAY,MAAtE;EACD;EACF,KAzeoB;;EAEnB,SAAKrlB,MAAL,GAAcA,MAAd;EACA,SAAKwc,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAmBD,MAAIyI,gBAAJ,GAAwB;EACtB,WAAO,EAAP;EACD;;EAED,MAAIA,gBAAJ,CAAsBC,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,QAAIA,IAAI,CAACllB,MAAL,GAAc,CAAlB,EAAqB;EACnB,WAAKmlB,mBAAL,CAAyBD,IAAzB;EACD;EACF;;EAED,MAAIE,0BAAJ,GAAkC;EAChC,WAAO,EAAP;EACD;;EAED,MAAIA,0BAAJ,CAAgCF,IAAhC,EAA2C;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzC,UAAMG,WAAW,GAAG,EAApB;;EACA,QAAIH,IAAI,CAACllB,MAAL,GAAc,CAAd,IAAmB,KAAKgH,KAA5B,EAAmC;EACjC,WAAKqa,SAAL,GAAiB,IAAjB;EACA,WAAKuC,eAAL,GAAuB,CAAvB;EACAsB,MAAAA,IAAI,CAAC5R,OAAL,CAAc7R,CAAD,IAAO;EAClB,cAAM7B,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,QAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP;EACAylB,QAAAA,WAAW,CAACzlB,GAAD,CAAX,GAAmB6B,CAAnB;EACA,aAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,aAAKmiB,eAAL;EACD,OAND;EAOA,WAAK2B,kBAAL,CAAwBF,WAAxB;EACA,WAAKG,0BAAL;EACD;EACF;;EAEDC,EAAAA,iBAAiB,GAAI;EACnB,SAAKC,IAAL;EACD;;EAEDA,EAAAA,IAAI,GAAI;EACN,SAAK5G,MAAL,GAAc,KAAKuC,SAAL,GAAiB,KAAKwC,qBAAtB,GAA8ChiB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlH;;EACA,QAAImB,MAAM,CAACgV,IAAP,CAAY,KAAKyL,MAAjB,EAAyB9e,MAAzB,KAAoC,CAAxC,EAA2C;EACzC;EACD;;EACD,SAAK8jB,aAAL,GAAqB/gB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAArB;;EACA,QAAI,KAAKA,aAAL,KAAuB,IAA3B,EAAiC;EAC/B;EACD;;EAED,QAAI,KAAKhF,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAvB,EAA2C;EACzC,WAAKC,gBAAL;EACD,KAFD,MAEO,IAAI,KAAK5B,aAAT,EAAwB;EAC7B,WAAKA,aAAL,CAAmBxhB,MAAnB;EACD;;EAED,SAAKqjB,WAAL;EAEA;EACJ;EACA;EACA;EACA;;EACI/iB,IAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,EAAsC,KAAK3B,0BAA3C;EACArhB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,EAAmC,KAAK8G,0BAAxC;EACA,SAAKtF,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,IAAiC,KAAKykB,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD,CAAjC;EAEA,SAAKlE,MAAL,CAAYe,SAAZ,GAAwB,KAAK+I,cAAL,EAAxB;EACA,SAAK9J,MAAL,CAAYzJ,WAAZ,CAAwB,KAAK1L,KAA7B;EACD;;EAEDkf,EAAAA,oBAAoB,GAAI;EACtB,UAAMC,QAAQ,GAAG,KAAKC,gCAAL,CAAsC,KAAtC,CAAjB;EACA,UAAMC,MAAM,GAAGF,QAAQ,GAAG9nB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,CAAH,GAA2B,EAAlD;;EACA,QAAIE,MAAM,CAACrmB,MAAP,KAAkB,CAAtB,EAAyB;EACvB;EACD;;EACDqmB,IAAAA,MAAM,CAAC/S,OAAP,CAAgB7R,CAAD,IAAO;EACpB,UAAI,CAAC0kB,QAAQ,CAAC1kB,CAAD,CAAR,CAAYke,MAAjB,EAAyB;EACvB,aAAKgE,gBAAL,CAAsBliB,CAAtB,IAA2B0kB,QAAQ,CAAC1kB,CAAD,CAAnC;EACA,aAAKmiB,eAAL;EACD;EACF,KALD;EAMA,SAAK2B,kBAAL,CAAwBY,QAAxB;EACA,SAAKX,0BAAL;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,gCAAgC,GAA2B;EAAA,QAAzBE,gBAAyB,uEAAN,IAAM;EACzD,QAAIH,QAAQ,GAAGI,gBAAgB,EAA/B;EAEA,UAAMjB,GAAG,GAAG1kB,IAAI,CAACC,KAAL,CAAWnC,IAAI,CAAC4mB,GAAL,KAAa,IAAxB,CAAZ;;EACA,SAAK,MAAMhG,GAAX,IAAkB6G,QAAlB,EAA4B;EAC1B,UAAIA,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,IAA0BL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyB,CAAnD,IAAwDL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyBlB,GAArF,EAA0F;EACxF,YAAIgB,gBAAgB,IAAI,KAAKtf,KAA7B,EAAoC;EAClC,gBAAMyf,EAAE,GAAG,KAAKrJ,UAAL,CAAgBpF,cAAhB,CAA+BmO,QAAQ,CAAC7G,GAAD,CAAR,CAAchmB,EAA7C,CAAX;EACAmtB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;;EACA,cAAI,CAAC0jB,QAAQ,CAAC7G,GAAD,CAAR,CAAcK,MAAnB,EAA2B;EACzB,iBAAKiE,eAAL;EACA,iBAAK4B,0BAAL;EACD;EACF;;EACD,eAAOW,QAAQ,CAAC7G,GAAD,CAAf;EACD;EACF;;EACD,QAAI6G,QAAQ,IAAIA,QAAQ,CAACnmB,MAAT,GAAkB,CAAlC,EAAqC;EACnCmmB,MAAAA,QAAQ,GAAG9nB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDslB,MAAxD,CAA+D,CAACC,GAAD,EAAMnlB,CAAN,KAAY;EAAEmlB,QAAAA,GAAG,CAACnlB,CAAC,CAACnI,EAAH,CAAH,GAAYmI,CAAZ;EAAe,eAAOmlB,GAAP;EAAY,OAAxG,EAA0G,EAA1G,CAAX;EACD;;EACDC,IAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA,WAAOA,QAAP;EACD;;EAEDhB,EAAAA,mBAAmB,GAAa;EAAA,QAAXD,IAAW,uEAAJ,EAAI;EAC9B,UAAM4B,SAAS,GAAG,KAAKV,gCAAL,EAAlB;EACA,UAAM/kB,IAAI,GAAG3C,IAAI,CAAC4mB,GAAL,EAAb;EACA,UAAMyB,YAAY,GAAG,EAArB;EACA7B,IAAAA,IAAI,CAAC5R,OAAL,CAAa,CAAC7R,CAAD,EAAIoN,CAAJ,KAAU;EACrB,YAAMjP,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,MAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP,CAFqB;;EAIrB6B,MAAAA,CAAC,CAACJ,IAAF,GAASA,IAAI,GAAGwN,CAAhB;EACApN,MAAAA,CAAC,CAACke,MAAF,GAAW,CAAX;EACAmH,MAAAA,SAAS,CAAClnB,GAAD,CAAT,GAAiB6B,CAAjB;EACAslB,MAAAA,YAAY,CAACnnB,GAAD,CAAZ,GAAoB6B,CAApB;EACA,WAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,WAAKmiB,eAAL;EACD,KAVD;EAWAiD,IAAAA,iBAAiB,CAACC,SAAD,CAAjB;;EACA,QAAI,KAAK9f,KAAT,EAAgB;EACd,WAAKue,kBAAL,CAAwBwB,YAAxB;EACA,WAAKvB,0BAAL;EACD;EACF;;EAEDrG,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDwG,EAAAA,gBAAgB,GAAI;EAClB,QAAI,CAAC,KAAK5B,aAAV,EAAyB;EACvB,WAAKA,aAAL,GAAqB,KAAK9E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB,CADuB;;EAGvB,WAAK8E,aAAL,CAAmBrG,KAAnB,CAAyBkD,OAAzB,iHAA0I,KAAKhC,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCzD,eAAhL,uCAA4N,KAAKrD,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCoB,SAAlQ;EACAjkB,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B,KAAKuR,aAA/B;EACD;;EACD,SAAKiD,2BAAL,GAPkB;;EAUlBjjB,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC,MAAM;EACtC,WAAK4J,2BAAL;EACD,KAFD;EAGD;;EAEDA,EAAAA,2BAA2B,GAAI;EAC7B,QAAI;EACF,YAAMC,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,KAAsD,KAAKA,aAA7E;EACA,YAAM;EAAEsD,QAAAA,GAAF;EAAOC,QAAAA;EAAP,UAAiBF,SAAS,CAACG,qBAAV,EAAvB;EACA,WAAKrD,aAAL,CAAmBrG,KAAnB,CAAyBwJ,GAAzB,aAAkCA,GAAG,GAAG,CAAxC;EACA,WAAKnD,aAAL,CAAmBrG,KAAnB,CAAyB2J,IAAzB,aAAmCF,KAAK,GAAG,CAA3C;EACD,KALD,CAKE,OAAOzc,KAAP,EAAc;EACd,WAAKjL,MAAL,CAAYkG,KAAZ,CAAkB,yCAAlB,EAA6D+E,KAA7D;EACD;EACF;;EAEDkb,EAAAA,WAAW,GAAI;EACb,SAAK9e,KAAL,GAAa,KAAKmY,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAb;EACA,UAAMqI,MAAM,GAAG,KAAKrI,QAAL,CAAc,KAAd,EAAqB,QAArB,CAAf;EAEA,UAAMsI,WAAW,GAAG,KAAKtI,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAsI,IAAAA,WAAW,CAACpH,SAAZ,GAAwB,KAAKvB,MAAL,CAAYsB,KAApC;EAEA,UAAM/C,SAAS,GAAG,KAAK8B,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAlB;EACA9B,IAAAA,SAAS,CAACH,SAAV,GAAsB,QAAtB;EAEAsK,IAAAA,MAAM,CAAC9U,WAAP,CAAmB+U,WAAnB;EACAD,IAAAA,MAAM,CAAC9U,WAAP,CAAmB2K,SAAnB;EACA,SAAKrW,KAAL,CAAW0L,WAAX,CAAuB8U,MAAvB;;EACA,QAAI,KAAK1I,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,YAAMgmB,UAAU,GAAG,KAAK0B,gBAAL,EAAnB;EACA,WAAK1gB,KAAL,CAAW0L,WAAX,CAAuBsT,UAAvB;EACD;;EACD,SAAKhC,SAAL,GAAiB,KAAK7E,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAjB;EACA,SAAKnY,KAAL,CAAW0L,WAAX,CAAuB,KAAKsR,SAA5B;EAEA,SAAKD,aAAL,GAAqB,KAAK5E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB;EACA,SAAK4E,aAAL,CAAmB1D,SAAnB,GAA+B,sCAA/B;EACA,SAAK2D,SAAL,CAAetR,WAAf,CAA2B,KAAKqR,aAAhC,EAtBa;;EAyBb,UAAM4D,OAAO,GAAG;EACdC,MAAAA,IAAI,EAAE,KAAK5D,SADG;EAEd6D,MAAAA,UAAU,EAAE,KAFE;EAGdC,MAAAA,SAAS,EAAE;EAHG,KAAhB;EAKA,SAAK5D,QAAL,GAAgB,IAAI6D,oBAAJ,CAAyB,CAACC,OAAD,EAAU9D,QAAV,KAAuB;EAAE,WAAK+D,mBAAL,CAAyBD,OAAzB;EAAmC,KAArF,EAAuFL,OAAvF,CAAhB;EAEA,SAAKzB,oBAAL;EACD;;EAEDwB,EAAAA,gBAAgB,GAAI;EAClB,UAAMQ,mBAAmB,GAAG,KAAK/I,QAAL,CAAc,KAAd,EAAqB,qBAArB,CAA5B;EAEA,UAAMgJ,SAAS,GAAG,KAAKhJ,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAgJ,IAAAA,SAAS,CAACjL,SAAV,GAAsBkL,QAAtB;EACAD,IAAAA,SAAS,CAACE,QAAV,CAAmB,CAAnB,EAAsBzK,KAAtB,GAA8B,2BAA9B;EACAuK,IAAAA,SAAS,CAAC7K,gBAAV,CAA2B,OAA3B,EAAoC,MAAM;EACxC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,CAAC,EAA9D,EAAkE,CAAlE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCyV,SAAhC;EAEA,UAAMI,iBAAiB,GAAG,KAAKpJ,QAAL,CAAc,KAAd,EAAqB,mBAArB,CAA1B;EACA,UAAMqJ,WAAW,GAAG,CAAC,KAAD,EAAQ,GAAG,KAAK1J,MAAL,CAAYkH,UAAvB,CAApB;;EACAwC,IAAAA,WAAW,CAAClV,OAAZ,CAAoB,CAACzP,CAAD,EAAIgL,CAAJ,KAAU;EAC5B,YAAM4Z,QAAQ,GAAG,KAAKtJ,QAAL,CAAc,KAAd,qBAAiCtQ,CAAjC,GAAsC,UAAtC,CAAjB;EACA4Z,MAAAA,QAAQ,CAACpI,SAAT,GAAqBxc,CAArB;;EACA,UAAIgL,CAAC,KAAK,CAAV,EAAa;EACX,aAAKsV,mBAAL,GAA2BsE,QAA3B;EACD;;EACDF,MAAAA,iBAAiB,CAAC7V,WAAlB,CAA8B+V,QAA9B;EACD,KAPD;;EAQAP,IAAAA,mBAAmB,CAACxV,WAApB,CAAgC6V,iBAAhC;EAEA,UAAMG,UAAU,GAAG,KAAKvJ,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAnB;EACAuJ,IAAAA,UAAU,CAACxL,SAAX,GAAuBkL,QAAvB;EACAM,IAAAA,UAAU,CAACpL,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,EAA7D,EAAiE,CAAjE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCgW,UAAhC;EAEA,UAAMf,OAAO,GAAG;EAAEC,MAAAA,IAAI,EAAEM,mBAAR;EAA6BJ,MAAAA,SAAS,EAAE;EAAxC,KAAhB;EACA,UAAMa,aAAa,GAAGJ,iBAAiB,CAACF,QAAlB,CAA2B,CAA3B,CAAtB;EACA,UAAMO,YAAY,GAAGL,iBAAiB,CAACF,QAAlB,CAA2B,KAAKvJ,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAlD,CAArB;EAEA,UAAM6oB,qBAAqB,GAAG,IAAId,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC5D,WAAKsmB,kBAAL,CAAwBX,SAAxB,EAAmC3lB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA7D;EACD,KAF6B,EAE3BpB,OAF2B,CAA9B;EAGAkB,IAAAA,qBAAqB,CAACnL,OAAtB,CAA8BiL,aAA9B;EAEA,UAAMK,oBAAoB,GAAG,IAAIjB,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC3D,WAAKsmB,kBAAL,CAAwBJ,UAAxB,EAAoClmB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA9D;EACD,KAF4B,EAE1BpB,OAF0B,CAA7B;EAGAqB,IAAAA,oBAAoB,CAACtL,OAArB,CAA6BkL,YAA7B;EAEA,WAAOV,mBAAP;EACD;;EAEDY,EAAAA,kBAAkB,CAAErC,EAAF,EAAMwC,IAAN,EAAY;EAC5B,QAAI,CAACxC,EAAL,EAAS;EACP;EACD;;EACDA,IAAAA,EAAE,CAAC7I,KAAH,CAASZ,OAAT,GAAmBiM,IAAI,GAAG,MAAH,GAAY,MAAnC;EACD;;EAEDxE,EAAAA,oBAAoB,CAAEyE,cAAF,EAAkB;EACpC,SAAKxF,gBAAL,GAAwBwF,cAAxB;EAEA,SAAKlF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,QAAIC,OAAO,GAAG,CAAd;EAEA,SAAK5E,eAAL,IAAwB,KAAKA,eAAL,CAAqBjS,YAArB,CAAkC,UAAlC,EAA8C,OAA9C,CAAxB;EACA,SAAK4R,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,MAAlD;EAEA,SAAKyR,SAAL,CAAeqF,UAAf,CAA0B/V,OAA1B,CAAkCzP,CAAC,IAAI;EACrC,UAAIA,CAAC,CAACsV,YAAF,CAAe,IAAf,MAAyB,eAA7B,EAA8C;EAC5CtV,QAAAA,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,GAAmB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmC7f,CAAC,CAACsV,YAAF,CAAe,UAAf,MAA+B,KAAKuK,gBAAxE,GAA4F,OAA5F,GAAsG,MAAxH;;EACA,YAAI7f,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,KAAoB,OAAxB,EAAiC;EAC/BoM,UAAAA,OAAO;EACR;EACF;EACF,KAPD;;EAQA,QAAIA,OAAO,KAAK,CAAhB,EAAmB;EACjB,WAAKrF,aAAL,CAAmB1D,SAAnB,aAAkC6I,cAAlC;EACA,WAAKnF,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,OAAnC;EACD,KAHD,MAGO;EACL,WAAK+G,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,MAAnC;EACD;EACF;;EAEDuI,EAAAA,kBAAkB,GAAiB;EAAA;;EAAA,QAAfY,QAAe,uEAAJ,EAAI;EACjC,KAAC,KAAK9E,SAAN,IAAmB,KAAKiI,uBAAL,EAAnB;EACA,SAAKtF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,UAAMI,cAAc,4BAAG,KAAKzK,MAAL,CAAYyK,cAAf,yEAAiCnsB,aAArD;EACA,UAAMosB,UAAU,GAAG,KAAKxF,SAAL,CAAewF,UAAlC;EAEA,UAAMC,UAAU,GAAGprB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDqoB,GAAxD,CAA6DjoB,CAAD,IAAOA,CAAC,CAACnI,EAArE,CAAnB;;EACA,SAAK,MAAMmI,CAAX,IAAgBgoB,UAAhB,EAA4B;EAC1B,YAAMxhB,IAAI,GAAG,IAAI4W,OAAJ,CAAY,KAAKC,MAAjB,EAAyBqH,QAAQ,CAAC1kB,CAAD,CAAjC,CAAb;EACAwG,MAAAA,IAAI,CAACsK,YAAL,CAAkB,IAAlB,EAAwB4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYnI,EAApC;EACA2O,MAAAA,IAAI,CAACsK,YAAL,CAAkB,OAAlB,EAA2B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYqb,UAAvC;EACA7U,MAAAA,IAAI,CAACsK,YAAL,CAAkB,MAAlB,EAA0B,kBAA1B;;EACA,UAAI,KAAKuM,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,CAApC,EAAuC;EACrCiI,QAAAA,IAAI,CAACsK,YAAL,CAAkB,UAAlB,EAA8B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYkoB,IAAZ,CAAiB,CAAjB,KAAuB,EAArD;EACA1hB,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAsB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmCyC,QAAQ,CAAC1kB,CAAD,CAAR,CAAYgnB,QAAZ,KAAyB,KAAK/E,gBAAlE,GAAsF,OAAtF,GAAgG,MAArH;EACD,OAHD,MAGO;EACLzb,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAqB,OAArB;EACD;;EACD,WAAKgH,SAAL,CAAe4F,YAAf,CAA4B3hB,IAA5B,EAAkCuhB,UAAlC;EACA,WAAKtF,QAAL,CAAcxG,OAAd,CAAsBzV,IAAtB;EACD;;EAED,QAAI4hB,aAAa,GAAG,KAAK7F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoD9pB,MAAxE;;EACA,WAAO6pB,aAAa,GAAGN,cAAvB,EAAuC;EACrC,YAAMQ,WAAW,GAAG,KAAK/F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,CAApB;;EACA,UAAIC,WAAW,CAAC/pB,MAAZ,GAAqB,CAAzB,EAA4B;EAAE+pB,QAAAA,WAAW,CAACA,WAAW,CAAC/pB,MAAZ,GAAqB,CAAtB,CAAX,CAAoCyC,MAApC;EAA8C;;EAC5EonB,MAAAA,aAAa;EACd;;EACD,UAAMG,WAAW,GAAG,KAAKhG,SAAL,CAAe8F,gBAAf,CAAgC,2CAAhC,EAA6E9pB,MAAjG;EACA,SAAK+jB,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmCgN,WAAW,GAAG,MAAH,GAAY,OAA1D;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAiCE;EACF;EACA;EACA;EACA;EACA;EACEnF,EAAAA,gBAAgB,CAAEriB,CAAF,EAAK;EAAA;;EACnB,UAAMsc,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,UAAM+sB,YAAY,GAAGlnB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,CAArB;EAEA,WACE,6BAAKA,aAAL,4EAAoBoG,QAApB,CAA6B1nB,CAAC,CAACia,MAA/B,OAA0CwN,YAA1C,aAA0CA,YAA1C,uBAA0CA,YAAY,CAAEC,QAAd,CAAuB1nB,CAAC,CAACia,MAAzB,CAA1C,CADF;EAGD;EAED;EACF;EACA;EACA;;;EACEwL,EAAAA,mBAAmB,CAAED,OAAF,EAAW;EAC5B,UAAMmC,gBAAgB,GAAG,CAAC,KAAK9I,SAA/B;;EACA,QAAI,KAAKmC,WAAT,EAAsB;EACpBwE,MAAAA,OAAO,CAAC1U,OAAR,CAAiB9Q,CAAD,IAAO;EACrB,YAAIA,CAAC,CAAC4nB,cAAF,IAAoB,KAAKzG,gBAAL,CAAsB7kB,cAAtB,CAAqC0D,CAAC,CAACia,MAAF,CAASnjB,EAA9C,CAApB,IAAyEkJ,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,KAA4B,CAAzG,EAA4G;EAC1Gnd,UAAAA,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,GAA0B,CAA1B;;EACA,cAAIwK,gBAAJ,EAAsB;EACpBlmB,YAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAA1C;EACA,iBAAKwN,iBAAL,CAAuB7nB,CAAC,CAACia,MAAF,CAASnjB,EAAhC,EAAoC,EAAE,GAAGkJ,CAAC,CAACia,MAAF,CAASsC,OAAd;EAAuBY,cAAAA,MAAM,EAAE;EAA/B,aAApC;EACA5N,YAAAA,UAAU,CAAC,MAAM;EACfvP,cAAAA,CAAC,CAACia,MAAF,CAASW,UAAT,CAAoBpF,cAApB,CAAmC,cAAnC,EAAmD4F,KAAnD,CAAyDZ,OAAzD,GAAmE,MAAnE;EACD,aAFS,EAEP,IAFO,CAAV;EAGD,WAND,MAMO;EACLjJ,YAAAA,OAAO,CAACkO,GAAR,CAAY,qEAAZ,EAAmF;EAAEtF,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAAnF;EACD;;EACD,eAAK+G,eAAL;EACA,eAAK4B,0BAAL;EACA,iBAAO,KAAK7B,gBAAL,CAAsBnhB,CAAC,CAACia,MAAF,CAASnjB,EAA/B,CAAP;EACD;EACF,OAhBD;EAiBD;EACF;;EAED+wB,EAAAA,iBAAiB,CAAEzqB,GAAF,EAAOL,KAAP,EAAc;EAC7B,QAAI,CAAC,KAAK8hB,SAAV,EAAqB;EACnB,YAAM8E,QAAQ,GAAGI,gBAAgB,EAAjC;EACAJ,MAAAA,QAAQ,CAACvmB,GAAD,CAAR,GAAgBL,KAAhB;EACAsnB,MAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD;EACF,GAtboC;;;EAybrC7B,EAAAA,WAAW,CAAE9hB,CAAF,EAAK;EACd,SAAKghB,WAAL,GAAmB,CAAC,KAAKA,WAAzB;EACA,SAAKC,kBAAL,GAA0B,CAAC,EAACjhB,CAAD,aAACA,CAAD,uBAACA,CAAC,CAAE8nB,IAAJ,CAA3B;;EACA,QAAI,KAAK9G,WAAT,EAAsB;EACpB,WAAKQ,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,OAAC,KAAK9H,SAAN,IAAmB,KAAK+E,gCAAL,EAAnB;EACA,WAAKpf,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,OAA3B;EACA,WAAKhW,KAAL,CAAW4W,KAAX,CAAiB2M,MAAjB,GAA0B,YAA1B,CAJoB;;EAKpB,UAAI,KAAKzL,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,aAAKmkB,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,OAAlD;EACA,aAAK4R,mBAAL,GAA2B,KAAK/G,UAAL,CAAgBpF,cAAhB,CAA+B,YAA/B,CAA3B;EACA,aAAKyM,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD;EACA,aAAKjD,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDwS,UAApD,IAAkE,KAAKpN,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDyS,WAAtH;EACD;;EACD,WAAKC,gBAAL,CAAsBloB,CAAtB;EACD,KAZD,MAYO;EACL,WAAKwE,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,MAA3B;EACD;EACF;;EAED0N,EAAAA,gBAAgB,CAAEloB,CAAF,EAAK;EACnB,UAAMmoB,WAAW,GAAG1mB,MAAM,CAAC2mB,UAA3B;EACA,UAAMC,iBAAiB,GAAGC,gBAAgB,CAACxmB,GAAG,CAAC0C,KAAL,CAA1C;EACA,UAAMogB,GAAG,GAAGyD,iBAAiB,CAACE,gBAAlB,CAAmC,aAAnC,CAAZ;EACA,UAAMC,MAAM,GAAGH,iBAAiB,CAACE,gBAAlB,CAAmC,gBAAnC,CAAf;EACA,UAAMxD,IAAI,GAAGsD,iBAAiB,CAACE,gBAAlB,CAAmC,cAAnC,CAAb;EACA,UAAM1D,KAAK,GAAGwD,iBAAiB,CAACE,gBAAlB,CAAmC,eAAnC,CAAd;EACA,UAAME,kBAAkB,GAAG7D,GAAG,IAAI4D,MAAP,IAAiBzD,IAAjB,IAAyBF,KAApD;;EACA,QAAIsD,WAAW,GAAG,GAAd,IAAqB,CAACM,kBAA1B,EAA8C;EAC5C,YAAMC,GAAG,GAAGC,gBAAgB,CAAC3oB,CAAD,EAAI,KAAKwE,KAAL,CAAWokB,YAAf,EAA6B,KAAKpkB,KAAL,CAAWqkB,WAAxC,CAA5B;EACA,YAAMC,IAAI,GAAGJ,GAAG,CAACI,IAAjB;EACA,YAAMC,IAAI,GAAGL,GAAG,CAACK,IAAjB;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiBwJ,GAAjB,GAAuBmE,IAAI,GAAG,IAA9B;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiB2J,IAAjB,GAAwB+D,IAAI,GAAG,IAA/B;EACD;EACF;EAED;EACF;EACA;EACA;EACA;;;EAUE9F,EAAAA,0BAA0B,GAAI;EAC5B,QAAI,KAAKnE,SAAT,EAAoB;EAClB,WAAKyD,aAAL,CAAmB,KAAKlB,eAAxB;EACA;EACD;;EACD,QAAIwF,OAAO,GAAG,CAAd;EACA,SAAKpF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM0kB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAIJ,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,IAAkB6sB,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,CAAeqmB,MAAf,KAA0B,CAAhD,EAAmD;EACjDyJ,QAAAA,OAAO;EACR;EACF,KALD;EAMA,SAAKtE,aAAL,CAAmBsE,OAAnB;EACD;;EAEDE,EAAAA,uBAAuB,GAAI;EACzB,SAAKtF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM+pB,EAAE,GAAG/pB,CAAC,CAACnI,EAAF,CAAKqK,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAX;EACAlC,MAAAA,CAAC,CAAC0a,MAAF,CAASnE,cAAT,CAAwB,WAAxB,EAAqCwR,UAArC,CAAgDnJ,SAAhD,GAA4DX,sBAAsB,CAAC8L,EAAD,CAAlF;EACD,KAHD;EAID;;EAEDvF,EAAAA,cAAc,GAAI;EAChB,UAAMwF,YAAY,GAAG,EAArB;EACA,UAAMC,gBAAgB,GAAG,KAAK5M,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,EAAhC,GAAqC,EAA9D;EAEA,UAAM2lB,MAAM,GAAG;EACbhD,MAAAA,oBAAoB,EAAE,KAAK7D,MAAL,CAAY6G,MAAZ,CAAmBhD,oBAD5B;EAEbC,MAAAA,gBAAgB,EAAE,KAAK9D,MAAL,CAAY6G,MAAZ,CAAmB/C,gBAFxB;EAGbC,MAAAA,qBAAqB,EAAE,KAAK/D,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BrF,eAHpC;EAIbW,MAAAA,gBAAgB,EAAE,KAAKhE,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BnF,UAJ/B;EAKbU,MAAAA,cAAc,EAAE,KAAKjE,MAAL,CAAY6G,MAAZ,CAAmB5C,cALtB;EAMbC,MAAAA,kBAAkB,EAAE,KAAKlE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B2F,QANrC;EAOb1I,MAAAA,oBAAoB,EAAE,KAAKnE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B3D,UAPvC;EAQbc,MAAAA,wBAAwB,EAAE,KAAKrE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CD,QARvD;EASbvI,MAAAA,0BAA0B,EAAE,KAAKtE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CvJ,UATzD;EAUbiB,MAAAA,oBAAoB,EAAEmI,YAAY,GAAGC;EAVxB,KAAf;;EAYA,QAAI,KAAK5M,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAAlC,EAA+C;EAC7CuD,MAAAA,MAAM,CAACzC,qBAAP,GAA+B,KAAKpE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAA7D;EACD;;EACD,QAAI,KAAKtD,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA9C,EAA2D;EACzDuD,MAAAA,MAAM,CAACtC,2BAAP,GAAqC,KAAKvE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA/E;EACD;;EAED,UAAMyJ,WAAW,GAAGnJ,oBAAoB,CAACiD,MAAD,CAAxC;EAEA,UAAMmG,UAAU,GAAG,KAAKhN,MAAL,CAAY6G,MAAZ,CAAmBoG,KAAtC;EACA,UAAMC,SAAS,GAAG9J,aAAa,CAAC;EAC9BC,MAAAA,eAAe,EAAE2J,UAAU,CAAC3J,eADE;EAE9BC,MAAAA,WAAW,EAAE0J,UAAU,CAAC1J,WAFM;EAG9BC,MAAAA,UAAU,EAAEyJ,UAAU,CAACzJ,UAHO;EAI9BC,MAAAA,gBAAgB,EAAEwJ,UAAU,CAACxJ,gBAJC;EAK9BC,MAAAA,WAAW,EAAEuJ,UAAU,CAACvJ,WALM;EAM9BC,MAAAA,eAAe,EAAEsJ,UAAU,CAACtJ,eANE;EAO9BC,MAAAA,iBAAiB,EAAEqJ,UAAU,CAACrJ;EAPA,KAAD,CAA/B;EAUA,WAAOoJ,WAAW,GAAGG,SAArB;EACD;;EAviBoC;;ECAhC,MAAMC,uBAAuB,GAAG,UAACC,eAAD,EAAwC;EAAA,MAAtB7K,SAAsB,uEAAV,KAAU;;EAC7E,QAAM8K,SAAS,GAAGtqB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAxE;;EACA,MAAImkB,SAAJ,EAAe;EACb/c,IAAAA,GAAG,CAAC0C,KAAJ,CAAU6c,qBAAV,GAAkCqI,eAAlC;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUqa,SAAV,GAAsB,IAAtB;EACA/c,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD,GAJD,MAIO,IAAIxjB,IAAI,CAACC,SAAL,CAAegqB,SAAf,MAA8BjqB,IAAI,CAACC,SAAL,CAAe+pB,eAAf,CAAlC,EAAmE;EACxErqB,IAAAA,cAAc,CAACqC,gBAAf,CAAgChH,eAAhC,EAAiDgvB,eAAjD;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD;EACF,CAVM;EAYA,MAAM0G,kBAAkB,GAAI9M,GAAD,IAAS;EACzC,MAAIA,GAAG,CAAC+M,aAAR,EAAuB;EACrB/nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUoe,0BAAV,GAAuC9F,GAAG,CAACgN,YAA3C;EACD,GAFD,MAEO;EACLhoB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUie,gBAAV,GAA6B3F,GAA7B;EACD;EACF,CANM;EAiBA,MAAMiN,WAAW,GAAI5sB,MAAD,IAAY;EACrC6sB,EAAAA,gCAAgC;EAChCloB,EAAAA,GAAG,CAAC0C,KAAJ,GAAY,IAAIuc,KAAJ,CAAU;EAAE5jB,IAAAA;EAAF,GAAV,CAAZ;EACAoD,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BpO,GAAG,CAAC0C,KAA9B;EACD,CAJM;;EAMP,MAAMylB,0BAA0B,GAAI9hB,IAAD,IAAU;EAC3C,QAAMwb,QAAQ,GAAGtkB,cAAc,CAAC2C,kBAAf,CAAkCrH,QAAlC,KAA+C,EAAhE,CAD2C;;EAG3C,MAAIkB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAA/B,IAAoC3B,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsB,CAAtB,EAAyBnZ,QAAzB,CAAkC,GAAlC,CAAxC,EAAgF;EAC9E,UAAM0f,WAAW,GAAG,EAApB;EACAA,IAAAA,WAAW,CAAC/hB,IAAD,CAAX,GAAoBwb,QAApB;EACAtkB,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0CuvB,WAA1C;EACA,WAAOA,WAAP;EACD;;EACD,SAAOvG,QAAP;EACD,CAVD;;EAYO,MAAMI,gBAAgB,GAAG,MAAM;EACpC,QAAM5b,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE,WAAO,EAAP;EAAW;;EACtC,QAAMwb,QAAQ,GAAGsG,0BAA0B,CAAC9hB,IAAD,CAA3C;EAEA,SAAOwb,QAAQ,CAACrnB,cAAT,CAAwB6L,IAAxB,IAAgCwb,QAAQ,CAACxb,IAAD,CAAxC,GAAiD,EAAxD;EACD,CANM;EAQA,MAAMkc,iBAAiB,GAAIV,QAAD,IAAc;EAC7C,QAAMxb,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE;EAAQ;;EACnC,QAAMgiB,cAAc,GAAGF,0BAA0B,CAAC9hB,IAAD,CAAjD;EAEA,QAAMsI,MAAM,GAAG,EAAE,GAAG0Z,cAAL;EAAqB,KAAChiB,IAAD,GAAQwb;EAA7B,GAAf;EACAtkB,EAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0C8V,MAA1C;EACD,CAPM;EASA,MAAM2Z,kBAAkB,GAAIjtB,MAAD,IAAY;EAC5C,SAAO,IAAIktB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,UAAMC,UAAU,GAAG,UAACC,SAAD,EAAgD;EAAA,UAApCC,QAAoC,uEAAzB,GAAyB;EAAA,UAApBC,UAAoB,uEAAP,EAAO;EACjE,aAAO,IAAIN,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,YAAIK,QAAQ,GAAG,CAAf;EACA,cAAMC,KAAK,GAAGC,WAAW,CAAC,MAAM;EAC9B3tB,UAAAA,MAAM,CAACkG,KAAP,0BAA+BunB,QAAQ,GAAG,CAA1C;;EACA,cAAIH,SAAS,EAAb,EAAiB;EACfM,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFQ;EAGhB,WAHD,MAGO,IAAIxoB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EAC7BumB,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFsB;EAG9B,WAHM,MAGA,IAAIM,QAAQ,IAAID,UAAhB,EAA4B;EACjCI,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAN,YAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,sCAAV,CAAD,CAAN;EACD;;EACDJ,UAAAA,QAAQ;EACT,SAbwB,EAatBF,QAbsB,CAAzB;EAcD,OAhBM,CAAP;EAiBD,KAlBD;;EAoBA,UAAMO,cAAc,GAAG,MAAM;EAC3B,UAAInpB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBulB,QAAAA,WAAW,CAAC5sB,MAAD,CAAX;EACD;EACF,KAJD;;EAMA,UAAM+tB,qBAAqB,GAAG,MAAM;EAClC,YAAM5O,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;;EACA,UAAI,CAAC4hB,MAAM,CAACgF,aAAZ,EAA2B;EACzBnkB,QAAAA,MAAM,CAACkG,KAAP,CAAa,kCAAb;EACA,eAAO,KAAP;EACD;;EACD,aAAO9C,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,KAAiDxf,GAAG,CAAC0C,KAAJ,KAAc,IAAtE;EACD,KAPD;;EASA,UAAM2mB,SAAS,GAAG,MAAM;EACtBhuB,MAAAA,MAAM,CAACkG,KAAP,CAAa,qBAAb;EACD,KAFD;;EAIA,QAAI+nB,YAAY,GAAG,KAAnB,CAxCsC;;EAyCtC,UAAMC,UAAU,GAAG,MAAM;EACvB,UAAI,CAACD,YAAL,EAAmB;EACjBA,QAAAA,YAAY,GAAG,IAAf;EACAZ,QAAAA,UAAU,CAACU,qBAAD,EAAwB,GAAxB,EAA6B,EAA7B,CAAV,CACGI,IADH,CACQ,MAAM;EACVL,UAAAA,cAAc;EACdX,UAAAA,OAAO;EACR,SAJH,EAKGiB,KALH,CAKSJ,SALT;EAMD;EACF,KAVD;;EAYA,UAAMK,mBAAmB,GAAG,MAAM;EAChC,UAAIjrB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,QAAAA,UAAU;EACX,OAFD,MAEO;EACL5pB,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgCuQ,UAAhC;EACA9qB,QAAAA,QAAQ,CAACua,gBAAT,CACE,kBADF,EAEE,MAAM;EACJ,cAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,YAAAA,UAAU;EACX;EACF,SANH;EAQD;EACF,KAdD;;EAgBAG,IAAAA,mBAAmB;EACpB,GAtEM,CAAP;EAuED,CAxEM;EA0EA,MAAMxB,gCAAgC,GAAG,MAAM;EACpD,MAAI0B,cAAc,CAAClmB,GAAf,CAAmB,cAAnB,MAAuCxI,SAA3C,EAAsD;EACpD0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,cAAtB,EAAsC5K,KAAtC;EACA2K,IAAAA,cAAc,CAACC,MAAf,CAAsB,kBAAtB,EAA0CtP,OAA1C;EACD;EACF,CALM;EAOA,MAAMsM,gBAAgB,GAAG,CAAC3oB,CAAD,EAAI4rB,WAAJ,EAAiBC,UAAjB,KAAgC;EAC9D,QAAMC,gBAAgB,GAAGvrB,QAAQ,CAACwrB,gBAAT,CAA0B/D,UAAnD;EACA,QAAMgE,cAAc,GAAGzrB,QAAQ,CAACwrB,gBAAT,CAA0BpF,SAAjD;EACA,QAAMwB,WAAW,GAAG1mB,MAAM,CAACwqB,UAAP,GAAoBH,gBAAxC;EACA,QAAMI,YAAY,GAAGzqB,MAAM,CAAC0qB,WAAP,GAAqBH,cAA1C;EACA,QAAMI,YAAY,GAAGpsB,CAAC,CAAC8nB,IAAF,IAAU9nB,CAAC,CAACia,MAAF,CAAS6K,qBAAT,EAA/B;EACA,QAAMuH,SAAS,GAAGD,YAAY,CAACE,CAAb,GAAiBR,gBAAnC;EACA,QAAMS,SAAS,GAAGH,YAAY,CAACltB,CAAb,GAAiB8sB,cAAnC;EACA,QAAMQ,YAAY,GAAGJ,YAAY,CAACrH,IAAb,GAAoB+G,gBAAzC;EACA,QAAMW,aAAa,GAAGL,YAAY,CAACvH,KAAb,GAAqBiH,gBAA3C;EACA,QAAMY,WAAW,GAAGN,YAAY,CAACxH,GAAb,GAAmBoH,cAAvC,CAV8D;;EAY9D,QAAMW,cAAc,GAAGP,YAAY,CAAC5D,MAApC;EACA,QAAMoE,cAAc,GAAGR,YAAY,CAAChQ,MAApC;EACA,QAAMyQ,aAAa,GAAGT,YAAY,CAAC3Q,KAAnC;EACA,QAAMqR,cAAc,GAAG;EACrBR,IAAAA,CAAC,EAAED,SAAS,GAAIQ,aAAa,GAAG,CADX;EAErB3tB,IAAAA,CAAC,EAAEqtB,SAAS,GAAIK,cAAc,GAAG;EAFZ,GAAvB;EAIA,QAAMG,iBAAiB,GAAInB,WAAW,GAAG,CAAzC;EACA,QAAMoB,gBAAgB,GAAInB,UAAU,GAAG,CAAvC;EACA,MAAIoB,WAAW,GAAG,KAAlB;EAEA,MAAInE,IAAJ,EAAUC,IAAV;EAEA,QAAMhd,OAAO,GAAG,EAAhB;EAEA;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACE,MAAI4gB,cAAc,GAAGf,WAAjB,IAAgCM,YAApC,EAAkD;EAAE;EAClD,UAAMgB,eAAe,GAAGhB,YAAY,IAAIS,cAAc,GAAGf,WAArB,CAApC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B4gB,cAAc,GAAG5gB,OAA9C,GAAwD4gB,cAAc,GAAGO,eAAhF;EACD,GAHD,MAGO,IAAIR,WAAW,GAAGd,WAAd,IAA6BI,cAAjC,EAAiD;EAAE;EACxD,UAAMkB,eAAe,GAAGR,WAAW,GAAGd,WAAtC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B2gB,WAAW,GAAGd,WAAd,GAA4B7f,OAAzD,GAAmE2gB,WAAW,GAAGd,WAAd,GAA4BsB,eAAtG;EACD,GAHM,MAGA;EACLD,IAAAA,WAAW,GAAG,IAAd;EACAlE,IAAAA,IAAI,GAAG+D,cAAc,CAAC5tB,CAAf,GAAmB6tB,iBAA1B,CAFK;;EAGL,QAAIhE,IAAI,GAAGiD,cAAX,EAA2B;EACzBjD,MAAAA,IAAI,GAAGiD,cAAP;EACD,KAFD,MAEO,IAAIjD,IAAI,GAAG6C,WAAP,GAAqBM,YAAzB,EAAuC;EAC5CnD,MAAAA,IAAI,GAAGmD,YAAY,GAAGN,WAAtB;EACD;EACF;;EAED,MAAIqB,WAAJ,EAAiB;EACf;EACA,UAAME,UAAU,GAAGV,aAAa,GAAGZ,UAAnC;;EACA,QAAIsB,UAAU,IAAIhF,WAAlB,EAA+B;EAC7B,YAAMiF,cAAc,GAAGD,UAAU,GAAGphB,OAAb,IAAwBoc,WAAxB,GAAsCpc,OAAtC,GAAgDoc,WAAW,GAAGgF,UAArF;EACArE,MAAAA,IAAI,GAAG2D,aAAa,GAAGW,cAAvB;EACD,KAHD,MAGO;EACL,YAAMC,SAAS,GAAGb,YAAY,GAAGX,UAAjC;EACA,YAAMuB,cAAc,GAAGC,SAAS,GAAGthB,OAAZ,IAAuB+f,gBAAvB,GAA0C/f,OAA1C,GAAoDshB,SAAS,GAAGvB,gBAAvF;EACAhD,MAAAA,IAAI,GAAGuE,SAAS,GAAGD,cAAnB;EACD;EACF,GAXD,MAWO;EACLtE,IAAAA,IAAI,GAAGgE,cAAc,CAACR,CAAf,GAAmBU,gBAA1B;;EACA,QAAIlE,IAAI,GAAGgD,gBAAX,EAA6B;EAC3B,UAAIU,YAAY,GAAGX,UAAf,IAA6B1D,WAAjC,EAA8C;EAC5CW,QAAAA,IAAI,GAAG0D,YAAP;EACD,OAFD,MAEO;EACL1D,QAAAA,IAAI,GAAGgD,gBAAP;EACD;EACF,KAND,MAMO,IAAIhD,IAAI,GAAG+C,UAAP,GAAoB1D,WAAxB,EAAqC;EAC1C,UAAIsE,aAAa,GAAGZ,UAAhB,IAA8BC,gBAAlC,EAAoD;EAClDhD,QAAAA,IAAI,GAAG2D,aAAa,GAAGZ,UAAvB;EACD,OAFD,MAEO;EACL/C,QAAAA,IAAI,GAAGX,WAAW,GAAG0D,UAArB;EACD;EACF;EACF;;EAED,SAAO;EAAE/C,IAAAA,IAAF;EAAQC,IAAAA;EAAR,GAAP;EACD,CA3FM;EA6FA,MAAM7L,sBAAsB,GAAI8L,EAAD,IAAQ;EAC5C,QAAMlG,GAAG,GAAG5mB,IAAI,CAAC4mB,GAAL,EAAZ;EACA,MAAIwK,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAW,CAACykB,GAAG,GAAGkG,EAAP,IAAa,KAAxB,CAAX;;EACA,MAAIsE,IAAI,GAAG,CAAX,EAAc;EACZ,WAAO,UAAP;EACD;;EACD,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,oBAAwBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAzC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;;EACA,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,kBAAsBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAvC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;EACA,mBAAUA,IAAV,iBAAqBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAtC;EACD,CAfM;EAiBA,MAAMC,uBAAuB,GAAG,MAAM;EAC3C,SAAO1xB,MAAM,CAACgV,IAAP,CAAYxR,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlE,EAAsE8C,MAAtE,GAA+E,CAAtF;EACD,CAFM;EAIA,MAAMooB,QAAQ,4lBAAd;EAIA,MAAMnH,YAAY,4pBAAlB;;EC7QA,MAAM+O,YAAY,GAAG,qFAArB;EACA,MAAMC,QAAQ,GAAG,oFAAjB;EACA,MAAMC,SAAS,GAAG;EACvBC,EAAAA,YAAY,EAAE,uBADS;EAEvBC,EAAAA,YAAY,EAAE,uBAFS;EAGvBC,EAAAA,UAAU,EAAE;EAHW,CAAlB;;ECFA,MAAMC,cAAc,GAAG,UAACC,OAAD,EAAUC,SAAV,EAAqBjP,OAArB,EAAoD;EAAA,MAAtBF,SAAsB,uEAAV,KAAU;;EAChF,MAAImP,SAAS,KAAKhxB,SAAlB,EAA6B;EAC3B;EACA,QAAIgxB,SAAS,CAAC5S,KAAV,KAAoBpe,SAAxB,EAAmC;EACjCnB,MAAAA,MAAM,CAACgV,IAAP,CAAYmd,SAAS,CAAC5S,KAAtB,EAA6BtK,OAA7B,CAAsCnP,QAAD,IAAc;EACjDosB,QAAAA,OAAO,CAAC3S,KAAR,CAAcO,WAAd,CAA0Bha,QAA1B,EAAoCqsB,SAAS,CAAC5S,KAAV,CAAgBzZ,QAAhB,CAApC;EACD,OAFD;EAGD,KAN0B;;;EAS3B,QAAIqsB,SAAS,CAACC,SAAV,KAAwBjxB,SAA5B,EAAuC;EACrC,YAAMkxB,iBAAiB,GAAGH,OAAO,CAAC3S,KAAR,CAAc+S,cAAxC;;EACA,UAAIH,SAAS,CAACC,SAAd,EAAyB;EACvBF,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+B,UAAGD,iBAAH,gBAAiCjsB,IAAjC,EAA/B;EACD,OAFD,MAEO;EACL8rB,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+BD,iBAAiB,CAACrwB,OAAlB,CAA0B,WAA1B,EAAuC,EAAvC,EAA2CoE,IAA3C,EAA/B;EACD;EACF,KAhB0B;;;EAmB3B,QAAI+rB,SAAS,CAAC3P,IAAV,KAAmBrhB,SAAvB,EAAkC;EAChC+wB,MAAAA,OAAO,CAAClQ,SAAR,GAAoBgB,SAAS,GAAGmP,SAAS,CAAC3P,IAAV,CAAeA,IAAlB,GAAyB2P,SAAS,CAAC3P,IAAhE;EACD,KArB0B;;;EAwB3B,QAAI2P,SAAS,CAACI,YAAV,KAA2BpxB,SAA/B,EAA0C;EACxC,YAAM8N,GAAG,GAAGkjB,SAAS,CAACI,YAAV,CAAuBC,QAAnC;EACAN,MAAAA,OAAO,CAACO,OAAR,GAAkBN,SAAS,CAACI,YAAV,CAAuBG,MAAvB,GACd,MAAM;EACN,YAAI,CAAC1P,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,EAA2BsU,KAA3B;EACD,OANe,GAOd,MAAM;EACN,YAAI,CAACP,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAvB;EACD,OAZH;EAaD,KAvC0B;;;EA0C3B,QAAIkjB,SAAS,CAACS,MAAV,KAAqBzxB,SAArB,IAAkC+wB,OAAO,CAAC/O,OAAR,CAAgBxH,WAAhB,OAAkC,KAAxE,EAA+E;EAC7EuW,MAAAA,OAAO,CAACW,GAAR,GAAcV,SAAS,CAACS,MAAxB;EACD;EACF;EACF,CA/CM;EAiDA,MAAME,gBAAgB,GAAIZ,OAAD,IAAa;EAC3C;EACA,MAAIA,OAAO,CAACa,UAAR,KAAuB5xB,SAA3B,EAAsC;EACpC,UAAMoe,KAAK,GAAG7a,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAAd;EACA4P,IAAAA,KAAK,CAACV,SAAN,GAAkBqT,OAAO,CAACa,UAA1B;EACAruB,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BkL,KAA1B;EACD;EACF,CAPM;;EC9CA,MAAM0T,gBAAgB,GAAG,CAAC3xB,MAAD,EAASjG,SAAT,KAAuB;EACrD,QAAM63B,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;;EAEA,MAAIypB,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;;EACA,YAAQF,MAAR;EACE,WAAK,WAAL;EACE9xB,QAAAA,MAAM,CAACkG,KAAP,CAAa,6BAAb;EACA5B,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,kBAAL;EACEhK,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,mBAAL;EACE,YAAIyjB,YAAJ,EAAkB;EAChB,gBAAMK,UAAU,GAAG,QAAnB;EACAL,UAAAA,YAAY,CAACG,WAAb,CAAyB;EACvB9S,YAAAA,OAAO,EAAE,YADc;EAEvBrlB,YAAAA,SAFuB;EAGvBo4B,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J,IAHJ;EAIvB8jB,YAAAA;EAJuB,WAAzB,EAMA,GANA;EAQD;;EACD;EA1BJ;EA8BD;EACF,CArCM;;EAuCP,MAAMH,kBAAkB,GAAII,KAAD,IAAW;EACpC,MAAIA,KAAK,CAAC3vB,IAAN,IAAc4vB,UAAU,CAACD,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAZ,CAA5B,EAAoD;EAClD,UAAMI,SAAS,GAAG,IAAIC,GAAJ,CAAQH,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAnB,EAA8BM,MAAhD;;EACA,QAAIJ,KAAK,CAACI,MAAN,KAAiBF,SAArB,EAAgC;EAC9B;EACD;EACF,GALD,MAKO;EACL;EACD;;EACD,MAAIF,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,WAA3B,EAAwC;EAAA;;EACtC;EACA9a,IAAAA,MAAM,CAACouB,SAAP,GAAmBL,KAAK,CAAC3vB,IAAN,CAAWiwB,eAAX,CAA2BD,SAA9C;EACAE,IAAAA,mBAAmB,CACjBP,KAAK,CAAC3vB,IAAN,CAAWiL,GADM,yBAEjB0kB,KAAK,CAAC3vB,IAAN,CAAWmwB,OAFM,qEAEK,IAFL,yBAGjBR,KAAK,CAAC3vB,IAAN,CAAWowB,OAHM,qEAGK,EAHL,EAIjBT,KAAK,CAAC3vB,IAAN,CAAWiwB,eAJM,CAAnB;EAMD,GATD,MASO,IAAIN,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,SAA3B,EAAsC;EAC3C2T,IAAAA,mBAAmB,CAACV,KAAK,CAAC3vB,IAAP,EAAa,IAAb,CAAnB;EACD;EACF,CArBD;EAsBA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,MAAMkwB,mBAAmB,GAAG,CAACjlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,KAA4C;EACtE,MAAIvvB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,IAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD,GAFD,MAEO;EACLvvB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,kBAA1B,EAA8C,MAAM;EAClD,UAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,QAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD;EACF,KAJD;EAKD;EACF,CAVD;;EAYA,IAAIjW,SAAJ;EACA,IAAIuW,aAAa,GAAG,KAApB;EACA,IAAIC,SAAS,GAAG,KAAhB;EACA;EACA;EACA;;EACA,SAASF,aAAT,CAAwBrlB,GAAxB,EAA6BklB,OAA7B,EAAsCC,OAAtC,EAA+CH,eAA/C,EAAgE;EAC9D,MAAI,CAACM,aAAL,EAAoB;EAClB,QAAI3uB,MAAM,CAAC6uB,OAAX,EAAoB;EAClBD,MAAAA,SAAS,GAAG,IAAZ;EACD;;EACD9vB,IAAAA,QAAQ,CAACkkB,IAAT,CAAc/J,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACsuB,IAAT,CAAcnU,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACgwB,eAAT,CAAyB7V,SAAzB,GAAqC,EAArC;EACAb,IAAAA,SAAS,GAAGtZ,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAZ;EACAqO,IAAAA,SAAS,CAAC/iB,EAAV,GAAe,YAAf;EACA+iB,IAAAA,SAAS,CAACuB,KAAV,CAAgBoV,QAAhB,GAA2B,UAA3B,CATkB;;EAUlB3W,IAAAA,SAAS,CAACuB,KAAV,CAAgBZ,OAAhB,GAA0B,MAA1B;EACAja,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B2J,SAA1B;EACA,UAAM4W,WAAW,GAAGjD,YAApB;EACAkD,IAAAA,iBAAiB,CAACD,WAAD,EAAc3lB,GAAd,EAAmBklB,OAAnB,EAA4BC,OAA5B,EAAqCH,eAArC,CAAjB,CACGxE,IADH,CACQ,MAAM;EACV/Z,MAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ;EACA2Q,MAAAA,aAAa,GAAG,IAAhB;EACD,KAJH,EAKG7E,KALH,CAKUnjB,KAAD,IAAW;EAChBmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAAd,EAA+CA,KAA/C;EACD,KAPH;EAQAuoB,IAAAA,OAAO;EACR;EACF;EAED;EACA;EACA;;;EACA,SAASA,OAAT,GAAoB;EAClB,MAAIC,IAAI,GAAGrwB,QAAQ,CAACiL,aAAT,CAAuB,MAAvB,CAAX;EACAolB,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;EACAD,EAAAA,IAAI,CAACnmB,IAAL,GAAY,UAAZ;EACAmmB,EAAAA,IAAI,CAACnlB,IAAL,GAAYgiB,QAAZ;EACAltB,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0gB,IAA1B;EACD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASF,iBAAT,CAA4BD,WAA5B,EAAyC3lB,GAAzC,EAA8CklB,OAA9C,EAAuDC,OAAvD,EAAgEH,eAAhE,EAAiF;EAC/E,SAAO,IAAIzF,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,QAAIuG,MAAM,GAAGvwB,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAb;EACAslB,IAAAA,MAAM,CAACrmB,IAAP,GAAc,QAAd;EACAqmB,IAAAA,MAAM,CAACpC,GAAP,GAAa+B,WAAb;;EACAK,IAAAA,MAAM,CAACC,MAAP,GAAgB,YAAY;EAC1B,UAAI,OAAOtvB,MAAM,CAACuvB,OAAd,KAA0B,UAA9B,EAA0C;EACxCvvB,QAAAA,MAAM,CAACuvB,OAAP,CAAe;EAAEl6B,UAAAA,EAAE,EAAE,aAAN;EAAqBgU,UAAAA,GAArB;EAA0BklB,UAAAA,OAA1B;EAAmCC,UAAAA,OAAnC;EAA4CI,UAAAA,SAA5C;EAAuDP,UAAAA;EAAvD,SAAf;EACAxF,QAAAA,OAAO;EACR,OAHD,MAGO;EACLC,QAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,uCAAV,CAAD,CAAN;EACD;EACF,KAPD;;EAQA8F,IAAAA,MAAM,CAACG,OAAP,GAAiB,UAAU7oB,KAAV,EAAiB;EAChCmiB,MAAAA,MAAM,CAACniB,KAAD,CAAN;EACD,KAFD;;EAGA7H,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B4gB,MAA1B;EACD,GAhBM,CAAP;EAiBD;EAED;EACA;EACA;EACA;EACA;;;EACO,MAAMZ,mBAAmB,GAAG,CAACgB,gBAAD,EAAmBrS,SAAnB,KAAiC;EAClE,QAAMsS,gBAAgB,GAAG,EAAzB;EACA,QAAMlB,OAAO,GAAGpR,SAAS,GAAGqS,gBAAgB,CAACjB,OAApB,GAA8BiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAhF;EACA,MAAInlB,GAAG,GAAGrJ,MAAM,CAACG,QAAP,CAAgB6J,IAA1B;;EACA,MAAIoT,SAAJ,EAAe;EACb,UAAMuS,UAAU,GAAG,IAAIzB,GAAJ,CAAQ7kB,GAAR,CAAnB;EACAsmB,IAAAA,UAAU,CAACrC,YAAX,CAAwBsC,MAAxB,CAA+B,cAA/B;EACAvmB,IAAAA,GAAG,GAAGsmB,UAAU,CAACr1B,QAAX,EAAN;EACD;;EACD,MAAIu1B,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADV;EAEdC,IAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAFZ,GAAhB;;EAKA,QAAMiX,WAAW,GAAG,MAAM;EACxB,QAAI,CAAC1S,SAAD,IAAc,CAACyS,kBAAnB,EAAuC;EACrCA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMyS,YAAY,GAAIzS,OAAD,IAAa;EAChCtd,IAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD,GAFD;;EAIA,QAAM0S,cAAc,GAAG,CAAC1D,OAAD,EAAU2D,QAAV,KAAuB;EAAA;;EAC5C,QAAIA,QAAQ,CAAC9C,UAAb,EAAyB;EACvBD,MAAAA,gBAAgB,CAAC+C,QAAD,CAAhB;EACD;;EACD,iCAAIA,QAAQ,CAACC,gBAAb,0DAAI,sBAA2BvxB,IAA/B,EAAqC;EACnC2tB,MAAAA,OAAO,CAACjT,gBAAR,CAAyB,OAAzB,EAAkC,MAAM;EACtC,cAAM8W,cAAc,GAAG;EACrBzX,UAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADH;EAErBC,UAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W,UAFL;EAGrBuX,UAAAA,OAAO,EAAE;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACC,gBAAT,CAA0BvxB;EAA3C;EAHY,SAAvB;EAKAoxB,QAAAA,YAAY,CAACI,cAAD,CAAZ;EACD,OAPD;EAQD;;EACD,QAAIF,QAAQ,CAAC/nB,MAAb,EAAqB;EACnB,cAAQ+nB,QAAQ,CAAC/nB,MAAT,CAAgBooB,MAAxB;EACE,aAAK,MAAL;EACE,cAAIlT,SAAJ,EAAe;EACbkP,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAAhB,CAAqBuC,IAAzC;EACD,WAFD,MAEO;EACL0P,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAApC;EACD;;EACD;;EACF,aAAK,MAAL;EACEmW,UAAAA,gBAAgB,CAACf,gBAAD,EAAmBQ,QAAQ,CAAC/nB,MAA5B,EAAoCkV,SAApC,CAAhB;EACA;;EACF,aAAK,MAAL;EACEE,UAAAA,OAAO,CAAC8S,OAAR,GAAkB;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACA;EAA1B,WAAlB;EACA5D,UAAAA,cAAc,CAACC,OAAD,EAAU2D,QAAQ,CAAC/nB,MAAT,CAAgBuoB,IAA1B,EAAgCnT,OAAhC,EAAyCF,SAAzC,CAAd;EACA;EAdJ;EAgBD;EACF,GAhCD;;EAkCA,QAAMsT,iBAAiB,GAAIT,QAAD,IAAc;EACtC,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIuH,YAAJ;;EACA,UAAI;EACFA,QAAAA,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuBZ,QAAQ,CAACA,QAAhC,CAAf;EACD,OAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,UAAIF,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAeX,QAAf,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDiS,QAAxD;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAb6B,EAa3B,GAb2B,CAA9B;EAcD,GAhBD;;EAkBAnC,EAAAA,OAAO,CAACnf,OAAR,CAAgB9R,CAAC,IAAI;EACnB,QAAIA,CAAC,CAAC8L,GAAF,KAAUA,GAAd,EAAmB;EACjB9L,MAAAA,CAAC,CAACwzB,YAAF,CAAe1hB,OAAf,CAAuBlK,CAAC,IAAI;EAC1B,YAAI,CAACA,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,YAApB,KAAqC5D,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,eAApB,CAAtC,KACF5D,CAAC,CAAC+C,MAAF,CAAS8oB,WADX,EACwB;EACtBtB,UAAAA,gBAAgB,CAAC5rB,IAAjB,CAAsBqB,CAAtB;EACD,SAHD,MAGO;EACL,cAAImnB,OAAJ;;EACA,cAAI;EACFA,YAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,CAAuB1rB,CAAC,CAAC8qB,QAAzB,CAAV;EACD,WAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,cAAIxE,OAAJ,EAAa;EACXwD,YAAAA,WAAW;EACXE,YAAAA,cAAc,CAAC1D,OAAD,EAAUnnB,CAAV,CAAd;EACD,WAHD,MAGO;EACLurB,YAAAA,iBAAiB,CAACvrB,CAAD,CAAjB;EACD;EACF;EACF,OAhBD;EAiBD;EACF,GApBD;;EAsBA,QAAM8rB,QAAQ,GAAIhB,QAAD,IAAc;EAC7B,UAAM;EAAEiB,MAAAA,GAAF;EAAOC,MAAAA;EAAP,QAAmBC,mBAAmB,CAACnB,QAAQ,CAACA,QAAV,CAA5C;EACA,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIiD,OAAO,GAAG,IAAd;;EACA,UAAI;EACF,cAAM+E,SAAS,GAAGvyB,QAAQ,CAAC+xB,aAAT,CAAuBM,OAAvB,CAAlB;EACA,cAAMG,IAAI,GAAGxyB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAb;EACA7E,QAAAA,OAAO,GAAGgF,IAAI,IAAID,SAAlB;EACD,OAJD,CAIE,OAAOP,CAAP,EAAU;EACVxE,QAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAV;EACD;;EACD,UAAI7E,OAAJ,EAAa;EACX,cAAMiF,OAAO,GAAGzyB,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAhB;EACAwnB,QAAAA,OAAO,CAACtY,SAAR,GAAoBgX,QAAQ,CAAC/nB,MAAT,CAAgB8oB,WAApC;EACA,cAAMQ,UAAU,GAAGD,OAAO,CAACE,iBAA3B;EACAnF,QAAAA,OAAO,CAACoF,qBAAR,CAA8BR,GAA9B,EAAmCM,UAAnC;;EACA,YAAI,CAAClF,OAAO,CAACpX,YAAR,CAAqB,aAArB,CAAL,EAA0C;EACxCoX,UAAAA,OAAO,CAAChe,YAAR,CAAqB,aAArB,EAAoC6iB,OAApC;EACD;;EACD,cAAMQ,eAAe,GAAG7yB,QAAQ,CAAC+xB,aAAT,0BAAwCZ,QAAQ,CAACA,QAAjD,SAAxB;EACAH,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAAC2B,eAAD,EAAkB1B,QAAlB,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAZD,MAYO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDmT,OAAxD;EACA7H,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAzB6B,EAyB3B,GAzB2B,CAA9B;EA0BD,GA7BD;;EA+BA,MAAIjB,gBAAgB,CAAC3zB,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,UAAM61B,SAAS,GAAGlC,gBAAgB,CAACjN,IAAjB,CAAsB,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAU;EAChD,YAAMmV,IAAI,GAAGC,QAAQ,CAAChoB,CAAC,CAACmmB,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,YAAMqyB,IAAI,GAAGD,QAAQ,CAACpV,CAAC,CAACuT,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,aAAOmyB,IAAI,GAAGE,IAAd;EACD,KAJiB,CAAlB;EAKAH,IAAAA,SAAS,CAACviB,OAAV,CAAkB4hB,QAAlB;EACD;EACF,CA3IM;;EA6IP,SAASG,mBAAT,CAA8Bn3B,KAA9B,EAAqC;EACnC,QAAMkC,KAAK,GAAG,qCAAd;EACA,QAAMqN,KAAK,GAAGvP,KAAK,CAACuP,KAAN,CAAYrN,KAAZ,CAAd;;EAEA,MAAIqN,KAAJ,EAAW;EACT,WAAO;EAAE0nB,MAAAA,GAAG,EAAE1nB,KAAK,CAAC,CAAD,CAAZ;EAAiB2nB,MAAAA,OAAO,EAAE3nB,KAAK,CAAC,CAAD;EAA/B,KAAP;EACD;;EACD,SAAO;EAAE0nB,IAAAA,GAAG,EAAE,aAAP;EAAsBC,IAAAA,OAAO,EAAE;EAA/B,GAAP;EACD;EAED;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASX,gBAAT,CAA2Bf,gBAA3B,EAA6CQ,QAA7C,EAA0E;EAAA,MAAnB7S,SAAmB,uEAAP,KAAO;EACxE,QAAM4U,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAIoX,QAAQ,CAACgC,IAAT,IAAiB,IAArB,EAA2B;EACzB,QAAI7U,SAAJ,EAAe;EACb4U,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAT,CAAcrV,IAA5B;EACD,KAFD,MAEO;EACLoV,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAvB;EACD;EACF;;EACD,QAAMC,YAAY,GAAG,IAAIC,WAAJ,CAAgB,8BAAhB,EAAgD;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAAhD,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD;;EAED,SAASlE,UAAT,CAAqBsE,MAArB,EAA6B;EAC3B,MAAI;EACF,UAAMjpB,GAAG,GAAG,IAAI6kB,GAAJ,CAAQoE,MAAR,CAAZ;EACA,WAAOC,OAAO,CAAClpB,GAAD,CAAd;EACD,GAHD,CAGE,OAAOmpB,IAAP,EAAa;EACb,WAAO,KAAP;EACD;EACF;;EAEM,SAASC,cAAT,CAAyBC,WAAzB,EAAsC;EAC3C,QAAM;EAAEC,IAAAA,qBAAqB,GAAG,EAA1B;EAA8BC,IAAAA,SAAS,GAAG;EAA1C,MAAmDF,WAAzD;EACA,QAAMG,aAAa,GAAG,EAAtB,CAF2C;;EAG3C,MAAIC,UAAU,GAAG,CAAjB,CAH2C;;EAI3C,MAAIC,aAAJ;;EACA,WAASC,YAAT,CAAuB1G,OAAvB,EAAgC;EAC9B,UAAMjG,IAAI,GAAGiG,OAAO,CAACjJ,qBAAR,EAAb;EACA,UAAM;EAAEqH,MAAAA,WAAW,EAAED,YAAf;EAA6BD,MAAAA,UAAU,EAAE9D;EAAzC,QAAyD1mB,MAA/D;EACA,WACEqmB,IAAI,CAACU,MAAL,GAAc,CAAd,IACAV,IAAI,CAACjD,KAAL,GAAa,CADb,IAEAiD,IAAI,CAAClD,GAAL,GAAWsH,YAFX,IAGApE,IAAI,CAAC/C,IAAL,GAAYoD,WAJd;EAMD;;EACD,GAAC,YAAY;EACX,UAAMuM,YAAY,wLAAlB,CADW;;EAUX,UAAMC,OAAO,GAAGjH,SAAS,CAACG,UAA1B;;EACA,QAAI,CAACttB,QAAQ,CAACiV,cAAT,CAAwBmf,OAAxB,CAAL,EAAuC;EACrC,YAAMC,YAAY,GAAGr0B,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAArB;EACAopB,MAAAA,YAAY,CAAC99B,EAAb,GAAkB69B,OAAlB;EACAC,MAAAA,YAAY,CAACC,WAAb,GAA2BH,YAA3B;EACAn0B,MAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACD;EACF,GAjBD;;EAkBA,WAASE,gBAAT,CAA2BC,SAA3B,EAAsC;EACpC,aAASC,gBAAT,CAA2BC,gBAA3B,EAA6C;EAC3C,YAAMC,QAAQ,GAAG,EAAjB;EACAD,MAAAA,gBAAgB,CAACnkB,OAAjB,CAAyB4gB,QAAQ,IAAI;EACnC,cAAMyD,eAAe,GAAG50B,QAAQ,CAAC+mB,gBAAT,CAA0BoK,QAA1B,CAAxB;;EACA,YAAIyD,eAAe,CAAC33B,MAApB,EAA4B;EAC1B23B,UAAAA,eAAe,CAACrkB,OAAhB,CAAwBmT,EAAE,IAAI;EAC5B,gBAAIwQ,YAAY,CAACxQ,EAAD,CAAhB,EAAsB;EACpBiR,cAAAA,QAAQ,CAAC3vB,IAAT,CAAc0e,EAAd;EACD;EACF,WAJD;EAKA,iBAAOqQ,aAAa,CAAC5C,QAAD,CAApB,CAN0B;EAO3B,SAPD,MAOO;EACL4C,UAAAA,aAAa,CAAC5C,QAAD,CAAb,GAA0B,KAA1B,CADK;EAEN;EACF,OAZD;EAaA0D,MAAAA,WAAW,CAACF,QAAD,CAAX;EACD;;EACD,aAASG,eAAT,GAA4B;EAC1BL,MAAAA,gBAAgB,CAACn5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,CAAD,CAAhB;EACAC,MAAAA,UAAU;;EACV,UAAI14B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA3B,KAAsC,CAAtC,IAA2C+2B,UAAU,GAAG,EAA5D,EAAgE;EAC9DA,QAAAA,UAAU,GAAG,CAAb;EACAxJ,QAAAA,aAAa,CAACyJ,aAAD,CAAb;EACD;EACF;;EACDQ,IAAAA,gBAAgB,CAACD,SAAD,CAAhB;;EACA,QAAIl5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA/B,EAAuC;EACrCg3B,MAAAA,aAAa,GAAG1J,WAAW,CAACuK,eAAD,EAAkB,GAAlB,CAA3B;EACD;EACF;;EACD,WAASD,WAAT,CAAsBF,QAAtB,EAAgC;EAC9BA,IAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAIA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACE,YAA3B,CAAvB;EACAre,IAAAA,UAAU,CAAC,MAAM;EACf2lB,MAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAI;EACrBA,QAAAA,EAAE,CAACqR,SAAH,CAAar1B,MAAb,CAAoBytB,SAAS,CAACE,YAA9B;EACA3J,QAAAA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACC,YAA3B;EACD,OAHD;EAID,KALS,EAKP0G,SALO,CAAV,CAF8B;EAQ/B;;EACD,WAASmB,gBAAT,GAA6B;EAC3B,QAAIC,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAArC;EACA,UAAMiW,QAAQ,GAAG,IAAIgU,gBAAJ,CAAqB,MAAM;EAC1C,UAAID,YAAY,KAAKl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAvC,EAA6C;EAC3CgqB,QAAAA,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAjC;EACAqpB,QAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;EACF,KALgB,CAAjB;EAMA1S,IAAAA,QAAQ,CAACxG,OAAT,CAAiB3a,QAAQ,CAACkkB,IAA1B,EAAgC;EAAEkR,MAAAA,SAAS,EAAE,IAAb;EAAmBC,MAAAA,OAAO,EAAE;EAA5B,KAAhC;EACD;;EACDn0B,EAAAA,MAAM,CAACqZ,gBAAP,CAAwB,kBAAxB,EAA4C,MAAM;EAChD0a,IAAAA,gBAAgB;EACjB,GAFD;EAGAV,EAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;;EC9aM,MAAMyB,0BAAN,SAAyCrc,WAAzC,CAAqD;EAC1D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKfi/B,QALe,GAKJ,IALI;EAAA,SAMfnc,MANe,GAMN,IANM;EAEb,SAAKA,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAKD,MAAIiW,OAAJ,GAAe;EACb,WAAO,KAAK6F,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI7F,OAAJ,CAAatyB,GAAb,EAAkB;EAChB,QAAI,KAAKm4B,QAAL,KAAkB,IAAtB,EAA4B;EAC1B,WAAKA,QAAL,GAAgBn4B,GAAhB;EACA,WAAKo4B,YAAL;EACD;EACF;;EAEDA,EAAAA,YAAY,GAAI;EACd,SAAKpc,MAAL,CAAYe,SAAZ,GAAwB,KAAKsb,gBAAL,EAAxB;;EACA,QAAI,KAAKC,UAAL,KAAoB,KAAxB,EAA+B;EAC7B,WAAKnb,gBAAL,CAAsB,OAAtB,EAA+B,MAAM;EACnC,cAAMP,UAAU,GAAG,KAAK0V,OAAL,CAAaiG,OAAhC;;EACA,YAAI3b,UAAJ,EAAgB;EACd,eAAK0V,OAAL,CAAaxuB,MAAb,GAAsBA,MAAM,CAAC6Z,IAAP,CAAYf,UAAZ,EAAwB,QAAxB,CAAtB,GAA0D9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B8O,UAAxF;EACD;;EACD9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAND;EAOD;;EACD5Y,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;EACD;;EAED2b,EAAAA,gBAAgB,GAAI;EAClB,4HAIgB,KAAK/F,OAAL,CAAaiG,OAAb,GAAuB,SAAvB,GAAmC,EAJnD,2DAOgB,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAkC,MAPlD,oXAqBM,KAAKlG,OAAL,CAAapU,GAAb,GAAmB,KAAKoU,OAAL,CAAapU,GAAhC,GAAsC,EArB5C,uIAyBkD,KAAKoU,OAAL,CAAamG,eAzB/D,6CA0BwB,KAAKnG,OAAL,CAAaoG,cA1BrC,uCA2BkB,KAAKpG,OAAL,CAAamG,eA3B/B,yHA6BM,KAAKnG,OAAL,CAAanU,IAAb,GAAoB,KAAKmU,OAAL,CAAanU,IAAjC,GAAwC,EA7B9C;EAgCD;;EAnEyD;;ECCrD,MAAMwa,4BAAN,SAA2C9c,WAA3C,CAAuD;EAC5D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAQf4iB,OARe,GAQL,IARK;EAAA,SASf8c,SATe,GASH,IATG;EAAA,SAUf5c,MAVe,GAUN,IAVM;EAAA,SAWf6c,MAXe,GAWN,CAXM;EAAA,SAYfC,sBAZe,GAYU,CAAC,CAZX;EAAA,SAafC,YAbe,GAaA,CAbA;EAAA,SAcfC,SAde,GAcH,IAdG;EAAA,SAefC,oBAfe,GAeQ,IAfR;EAEb,SAAKjd,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;;EACA,QAAI0R,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;EACF;;EAWD,MAAI5b,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKk5B,cAAL;EACD;EACF;;EAED,MAAI5G,OAAJ,GAAe;EACb,WAAO,KAAKhW,MAAL,CAAYO,OAAZ,CAAoByV,OAA3B;EACD;;EAED,MAAIzV,OAAJ,GAAe;EACb,WAAO,KAAKP,MAAL,CAAYO,OAAnB;EACD;;EAEDqc,EAAAA,cAAc,GAAI;EAChB,SAAKL,MAAL,GAAc,KAAKvG,OAAL,CAAazyB,MAA3B;EACA,SAAKmc,MAAL,CAAYe,SAAZ,GAAwB,KAAKoc,SAAL,EAAxB;EACA,UAAMC,QAAQ,GAAG,KAAKC,kBAAL,EAAjB;;EACA,QAAI,KAAKxc,OAAL,CAAayc,WAAjB,EAA8B;EAC5BF,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa2c,WAAtD;EACD;;EACD,QAAI,KAAK3c,OAAL,CAAa4c,aAAjB,EAAgC;EAC9BL,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa6c,gBAAtD;EACAN,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa8c,iBAAtD;EACD;;EACD,SAAKf,SAAL,GAAiBQ,QAAjB;EACA,SAAKpd,MAAL,CAAYzJ,WAAZ,CAAwB6mB,QAAxB;EACA,SAAKQ,UAAL;EACA,SAAKC,kBAAL,GAdgB;;EAgBhB,SAAKC,cAAL;EACA,SAAKC,YAAL;EACAj2B,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,MAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK;EAAnD,KAA1C;EACD;;EAEDid,EAAAA,UAAU,GAAI;EACZ,SAAKhB,SAAL,CAAezb,gBAAf,CAAgC,OAAhC,EAA0C0U,KAAD,IAAW;EAClD,YAAMmI,OAAO,GAAGnI,KAAK,CAACvV,MAAN,CAAanjB,EAA7B;;EACA,UAAI6gC,OAAO,CAAC5V,UAAR,CAAmB,kBAAnB,CAAJ,EAA4C;EAC1C,cAAM6V,QAAQ,GAAG,CAACD,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAlB;;EACA,YAAIy2B,QAAQ,KAAK,KAAKlB,YAAtB,EAAoC;EAClC,eAAKD,sBAAL,GAA8B,KAAKC,YAAnC;EACA,eAAKA,YAAL,GAAoBkB,QAApB;EACA,eAAKJ,kBAAL;EACA,eAAKC,cAAL;EACD;EACF,OARD,MAQO,IAAIE,OAAO,CAAC5V,UAAR,CAAmB,iBAAnB,CAAJ,EAA2C;EAChD4V,QAAAA,OAAO,CAACE,QAAR,CAAiB,OAAjB,IAA4B,KAAKC,QAAL,EAA5B,GAA8C,KAAKC,QAAL,EAA9C;EACA,aAAKN,cAAL;EACD,OAHM,MAGA,IAAIE,OAAO,CAACp2B,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAA5B,EAA+B;EACpC,cAAMkE,IAAI,GAAG,CAACkyB,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAd;EACA,cAAM2E,KAAK,GAAGL,IAAI,GAAG,CAArB;;EACA,YAAIhE,MAAM,CAAC8Z,MAAP,CAAc/L,SAAlB,EAA6B;EAC3B/N,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,YAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,YAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK,UAAnD;EAA+D0d,YAAAA,YAAY,EAAEvyB;EAA7E,WAA3C;EACD;;EACD,cAAMqF,GAAG,GAAG,KAAKmlB,OAAL,CAAanqB,KAAb,EAAoBowB,OAAhC;;EACA,YAAIprB,GAAG,KAAK,EAAZ,EAAgB;EACd,eAAKmlB,OAAL,CAAanqB,KAAb,EAAoBrE,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,CAA7B,GAA0DrJ,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAjF;EACD;EACF;EACF,KAxBD;EAyBD;;EAED4sB,EAAAA,YAAY,GAAI;EACd,SAAKnB,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvD,WAAKoH,oBAAL,GAA4BrnB,UAAU,CAAC,MAAM;EAC3C,aAAKonB,SAAL,GAAiB5L,aAAa,CAAC,KAAK4L,SAAN,CAA9B;EACD,OAFqC,EAEnC,GAFmC,CAAtC;EAGD,KAJD;;EAMA,SAAKJ,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvDyI,MAAAA,YAAY,CAAC,KAAKrB,oBAAN,CAAZ;;EACA,UAAI,KAAKD,SAAL,KAAmB35B,SAAvB,EAAkC;EAChC,aAAKy6B,cAAL;EACD;EACF,KALD;EAMD;;EAEDT,EAAAA,kBAAkB,GAAI;EACpB,UAAMD,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAjB;EACAurB,IAAAA,QAAQ,CAAChnB,YAAT,CAAsB,OAAtB,EAA+B,UAA/B;EAEA,SAAKkgB,OAAL,CAAanf,OAAb,CAAqB,CAAC+iB,MAAD,EAASxnB,CAAT,KAAe;EAClC,YAAM6rB,MAAM,GAAG33B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAf;EACA0sB,MAAAA,MAAM,CAAC5C,SAAP,CAAiBC,GAAjB,CAAqB,gBAArB;EACA2C,MAAAA,MAAM,CAACjC,UAAP,GAAoB,KAApB;EACAiC,MAAAA,MAAM,CAACnoB,YAAP,CAAoB,IAApB,2BAA4C1D,CAAC,GAAG,CAAhD;EACA6rB,MAAAA,MAAM,CAACjI,OAAP,GAAiB4D,MAAjB;EACAkD,MAAAA,QAAQ,CAAC7mB,WAAT,CAAqBgoB,MAArB;EACD,KAPD;EASA,WAAOnB,QAAP;EACD;;EAEDD,EAAAA,SAAS,GAAI;EAAA;;EACX,+SAac,kEAAM7c,MAAN,sFAAcO,OAAd,8EAAuB2b,SAAvB,IAAmC,KAAKlc,MAAL,CAAYO,OAAZ,CAAoB2b,SAAvD,GAAmE,MAbjF,qJAqBI,KAAK3b,OAAL,CAAa2d,UArBjB,qBAsBI,KAAK3d,OAAL,CAAa4d,YAtBjB;EAyBD;;EAEDZ,EAAAA,kBAAkB,GAAI;EACpB,QAAI,KAAKf,sBAAL,KAAgC,CAAC,CAArC,EAAwC;EACtC,YAAM4B,QAAQ,GAAG,KAAK1e,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKihB,sBAAlD,EAAjB;EACA,YAAM6B,UAAU,GAAG,KAAK3e,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKihB,sBAApD,EAAnB;EACA4B,MAAAA,QAAQ,CAAC/C,SAAT,CAAmBr1B,MAAnB,CAA0B,0BAA1B;;EACA,UAAIq4B,UAAJ,EAAgB;EACdA,QAAAA,UAAU,CAAChD,SAAX,CAAqBr1B,MAArB,CAA4B,4BAA5B;EACD;EACF;;EACD,UAAMwF,IAAI,GAAG,KAAKkU,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKkhB,YAAlD,EAAb;EACA,UAAMtY,MAAM,GAAG,KAAKzE,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKkhB,YAApD,EAAf;EACAjxB,IAAAA,IAAI,CAAC6vB,SAAL,CAAeC,GAAf,CAAmB,0BAAnB;;EACA,QAAInX,MAAJ,EAAY;EACVA,MAAAA,MAAM,CAACkX,SAAP,CAAiBC,GAAjB,CAAqB,4BAArB;EACD;EACF;;EAEDkC,EAAAA,cAAc,GAAI;EAChB1M,IAAAA,aAAa,CAAC,KAAK4L,SAAN,CAAb;EACA,SAAKA,SAAL,GAAiB7L,WAAW,CAAC,MAAM;EACjC,WAAKgN,QAAL;EACD,KAF2B,EAEzB,KAAKtd,OAAL,CAAa+d,UAAb,GAA0B,KAAK/d,OAAL,CAAa+d,UAAb,GAA0B,IAApD,GAA2D,IAFlC,CAA5B;EAGD;;EAEDT,EAAAA,QAAQ,GAAI;EACV,SAAKU,IAAL,CAAU,KAAK9B,YAAf,EAA6B,CAAC,KAAKA,YAAL,GAAoB,CAArB,IAA0B,KAAKF,MAA5D;EACD;;EAEDuB,EAAAA,QAAQ,GAAI;EACV,SAAKS,IAAL,CAAU,KAAK9B,YAAf,EAA6B,KAAKA,YAAL,GAAoB,CAAjD;EACD;;EAED8B,EAAAA,IAAI,CAAEC,IAAF,EAAQC,GAAR,EAAa;EACf,SAAKjC,sBAAL,GAA8BgC,IAA9B;EACA,SAAK/B,YAAL,GAAoBgC,GAApB;;EACA,QAAIA,GAAG,KAAK,CAAZ,EAAe;EACb,WAAKhC,YAAL,GAAoB,KAAKF,MAAzB;EACD;;EACD,SAAKgB,kBAAL;EACD;;EAxL2D;;ECEvD,MAAMmB,2BAA2B,GAAIzH,gBAAD,IAAsB;EAAA;;EAC/D,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;;EACD,QAAMtgB,KAAK,4BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,yEAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAMC,QAAQ,GAAGt4B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAjB;EACAqtB,EAAAA,QAAQ,CAAC1e,KAAT,GAAiB+W,gBAAgB,CAAC9W,OAAlC;EACAye,EAAAA,QAAQ,CAACxe,OAAT,GAAmB6W,gBAAgB,CAAC5W,UAApC;EACAue,EAAAA,QAAQ,CAAC1C,SAAT,GAAqBjF,gBAAgB,CAAC1W,OAAjB,CAAyB2b,SAA9C;EACA0C,EAAAA,QAAQ,CAAC5I,OAAT,GAAmBiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAnB;EACA,QAAM6I,WAAW,GAAG5H,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAAtF;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwB2oB,QAAxB;EACD,CAbM;EAeA,MAAME,6BAA6B,GAAI7H,gBAAD,IAAsB;EAAA;;EACjE,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,iCAAnB,MAA0DxI,SAA9D,EAAyE;EACvE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,iCAAtB,EAAyD2K,4BAAzD;EACD;;EACD,QAAM/gB,KAAK,6BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,2EAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAM7B,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,iCAAvB,CAAjB;EACAurB,EAAAA,QAAQ,CAAC9c,MAAT,GAAkBiX,gBAAlB;EACA,QAAMrX,SAAS,GAAGqX,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAApF;EACAsE,EAAAA,SAAS,CAACa,SAAV,GAAsB,EAAtB;EACAb,EAAAA,SAAS,CAAC3J,WAAV,CAAsB6mB,QAAtB;EACD,CAVM;EAYA,MAAMiC,oBAAoB,GAAI9H,gBAAD,IAAsB;EACxD,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAA5B,IAAkC,IAAtC,EAA4C;EAC1CwU,IAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAAxC;EACD;;EACD,QAAM0U,YAAY,GAAG,IAAIC,WAAJ,CAAgB,uBAAhB,EAAyC;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAAzC,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD,CAXM;EAaA,MAAMsF,gBAAgB,GAAI/H,gBAAD,IAAsB;EACpD3f,EAAAA,OAAO,CAACkO,GAAR,CAAY,mCAAZ,EAAiDyR,gBAAjD;EACA,QAAM;EAAC1W,IAAAA,OAAD;EAAUJ,IAAAA,OAAO,EAAE8e,MAAnB;EAA2B5e,IAAAA,UAAU,EAAE6e;EAAvC,MAAoDjI,gBAAgB,IAAI,EAA9E;EAEA,QAAM;EAAC3b,IAAAA,KAAD;EAAQ6jB,IAAAA,OAAO,EAAEva,SAAjB;EAA4B/T,IAAAA,GAA5B;EAAiC8tB,IAAAA;EAAjC,MAAgDpe,OAAO,IAAI,EAAjE;EACA,QAAMyV,OAAO,GAAGzV,OAAO,CAACyV,OAAR,CAAgB,CAAhB,CAAhB;EACA,QAAMnU,IAAI,GAAGmU,OAAO,CAACnU,IAArB,CANoD;EAQpD;EACA;;EAEA,MAAI,CAACvG,KAAD,IAAU,CAACuG,IAAf,EAAqB;EACnBvK,IAAAA,OAAO,CAACnJ,KAAR,CAAc,4BAAd;EACA;EACD;;EAED,MAAIyW,SAAJ,EAAe;EACbwa,IAAAA,mBAAmB,CAACvuB,GAAD,EAAM8tB,WAAN,EAAmBrjB,KAAnB,EAA0BuG,IAA1B,CAAnB;EACA,WAFa;EAIb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;EAED,MAAIwV,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+e,MADO;EAEd7e,IAAAA,OAAO,EAAE8e;EAFK,GAAhB;;EAKA,QAAM5H,WAAW,GAAG,MAAM;EACxB,QAAI,CAACD,kBAAL,EAAyB;EACvBA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMoT,iBAAiB,GAAI5c,KAAD,IAAW;EACnC,QAAIlL,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,YAAMuH,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAArB;;EACA,UAAI8c,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAevW,IAAf,CAAd;EACAiP,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,iDAAsDlK,KAAtD;EACAwV,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAV6B,EAU3B,GAV2B,CAA9B;EAWD,GAbD;;EAeAD,EAAAA,iBAAiB,CAAC5c,KAAD,CAAjB;EACD,CAlFM;;EAoFP,MAAMkc,cAAc,GAAG,CAAC1D,OAAD,EAAUjS,IAAV,KAAmB;EACxCvK,EAAAA,OAAO,CAACkO,GAAR,CAAY,wBAAZ,EAAsCsO,OAAtC;EACAxc,EAAAA,OAAO,CAACkO,GAAR,CAAY,qBAAZ,EAAmC3D,IAAnC;;EACA,MAAIiS,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACiE,SAAR,GAAoBlW,IAApB;EACD;EACF,CAND;;EAQA,MAAMud,mBAAmB,GAAG,OAAOvuB,GAAP,EAAY8tB,WAAZ,EAAyBrjB,KAAzB,EAAgCuG,IAAhC,KAAyC;EACnE,QAAMwd,gBAAgB,GAAG/4B,QAAQ,CAAC+xB,aAAT,CAAuBsG,WAAvB,CAAzB;EACArnB,EAAAA,OAAO,CAACkO,GAAR,CAAY,kBAAZ,EAAgC6Z,gBAAhC;EACAA,EAAAA,gBAAgB,CAACle,KAAjB,CAAuBgB,MAAvB,GAAgC,mBAAhC;;EACA,MAAI,CAACkd,gBAAL,EAAuB;EACrB/nB,IAAAA,OAAO,CAACnJ,KAAR,0CAAiDwwB,WAAjD;EACA;EACD;;EAED,QAAMW,QAAQ,GAAG,MAAMC,KAAK,CAAC1uB,GAAD,CAA5B;;EACA,MAAI,CAACyuB,QAAQ,CAACE,EAAV,IAAgB,CAACF,QAAQ,CAAC9U,IAA9B,EAAoC;EAClC;EACD;;EACD,QAAMiV,MAAM,GAAGH,QAAQ,CAAC9U,IAAT,CAAckV,SAAd,EAAf;EACA,QAAMC,OAAO,GAAG,IAAIC,WAAJ,EAAhB;EACA,MAAIC,UAAU,GAAG,EAAjB;;EACA,SAAO,IAAP,EAAa;EACX,UAAM;EAACC,MAAAA,IAAD;EAAOh9B,MAAAA;EAAP,QAAgB,MAAM28B,MAAM,CAAC95B,IAAP,EAA5B;EACA,QAAIm6B,IAAJ,EAAU;EACVD,IAAAA,UAAU,IAAIF,OAAO,CAACxuB,MAAR,CAAerO,KAAf,EAAsB;EAACi9B,MAAAA,MAAM,EAAE;EAAT,KAAtB,CAAd;EACD;;EACDF,EAAAA,UAAU,IAAIF,OAAO,CAACxuB,MAAR,EAAd;EACA,QAAM6uB,MAAM,GAAG15B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EACAyuB,EAAAA,MAAM,CAACC,MAAP,GAAgBJ,UAAhB;EACAG,EAAAA,MAAM,CAACxe,KAAP,GAAe,MAAf;EACAwe,EAAAA,MAAM,CAAC7d,MAAP,GAAgB,MAAhB;EACA6d,EAAAA,MAAM,CAACE,OAAP,GAAiB,iCAAjB;EACAF,EAAAA,MAAM,CAACnjC,EAAP,GAAY,yBAAZ;EAEAya,EAAAA,OAAO,CAACkO,GAAR,CAAY,QAAZ,EAAsBwa,MAAtB;EAEAX,EAAAA,gBAAgB,CAAC5e,SAAjB,GAA6B,EAA7B;EACA4e,EAAAA,gBAAgB,CAACppB,WAAjB,CAA6B+pB,MAA7B,EAhCmE;EAmCnE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACAA,EAAAA,MAAM,CAAClJ,MAAP,GAAgB,YAAY;EAC1Bxf,IAAAA,OAAO,CAACkO,GAAR,CAAY,eAAZ;EACA2a,IAAAA,iBAAiB,CAAC7kB,KAAD,EAAQuG,IAAR,EAAcme,MAAd,CAAjB;EACD,GAHD;EAID,CA/CD;;EAiDA,MAAMG,iBAAiB,GAAG,CAAC7kB,KAAD,EAAQuG,IAAR,EAAcue,aAAd,KAAgC;EACxD9oB,EAAAA,OAAO,CAACkO,GAAR,CAAY,yBAAZ,EAAuClK,KAAvC;EACAhE,EAAAA,OAAO,CAACkO,GAAR,CAAY,wBAAZ,EAAsC3D,IAAtC;EACAvK,EAAAA,OAAO,CAACkO,GAAR,CAAY,iCAAZ,EAA+C4a,aAA/C;EACA,MAAIhwB,KAAK,GAAG,CAAZ;EACA,QAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnCvZ,IAAAA,OAAO,CAACkO,GAAR,CAAY,OAAZ,EAAqBpV,KAArB;;EACA,QAAIgwB,aAAa,IAAIA,aAAa,CAACC,eAAnC,EAAoD;EAAA;;EAClD,YAAMC,eAAe,4BAAGF,aAAa,CAACC,eAAjB,0DAAG,sBAA+BhI,aAA/B,CAA6C/c,KAA7C,CAAxB;;EACA,UAAIglB,eAAJ,EAAqB;EACnB9I,QAAAA,cAAc,CAAC8I,eAAD,EAAkBze,IAAlB,CAAd;EACAiP,QAAAA,aAAa,CAACqH,UAAD,CAAb,CAFmB;EAIpB;EACF,KAPD,MAOO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxB0gB,MAAAA,aAAa,CAACqH,UAAD,CAAb;EACA7gB,MAAAA,OAAO,CAACipB,IAAR,CAAa,6CAAb;EACD;EACF,GAb6B,EAa3B,GAb2B,CAA9B;EAcD,CAnBD;;EAqBO,MAAMC,UAAU,GAAIvJ,gBAAD,IAAsB;EAC9C,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;EACA,QAAM6V,OAAO,GAAGiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAhB;EACA,QAAMyD,IAAI,GAAGzD,OAAO,CAACyD,IAArB;;EACA,MAAIxC,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyBkZ,IAAzB,IAAiC,IAArC,EAA2C;EACzCD,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;EACD;;EACD,QAAMgH,SAAS,GAAG,IAAI9G,WAAJ,CAAgB,4BAAhB,EAA8C;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAA9C,CAAlB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuB4G,SAAvB;EACD,CAbM;EAeA,MAAMC,mCAAmC,GAAIx9B,MAAD,IAAY;EAC7DoU,EAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ,EAD6D;EAI7D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACA,QAAMsP,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;EACA+L,EAAAA,OAAO,CAACkO,GAAR,CAAY,QAAZ,EAAsBwP,MAAtB;;EACA,MAAIA,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;EACA5d,IAAAA,OAAO,CAACkO,GAAR,CAAY,QAAZ,EAAsBwP,MAAtB;EACA1d,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4ByP,YAA5B;;EACA,YAAQD,MAAR;EACE,WAAK,qBAAL;EACE1d,QAAAA,OAAO,CAACkO,GAAR,CAAY,qBAAZ;;EACA,YAAIyP,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB,SAAzB,EAAoC,GAApC;EACA5tB,UAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C;EACA;EACA;EACA;EACA,kBAAMoL,SAAS,GAAGl7B,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAlB;EACA0R,YAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4Bmb,SAAS,CAACC,YAAtC;EACAtpB,YAAAA,OAAO,CAACkO,GAAR,CAAY,GAAZ,EAAiBmb,SAAS,CAACC,YAAV,CAAuB,CAAvB,CAAjB;EACAtpB,YAAAA,OAAO,CAACkO,GAAR,CAAY,YAAZ,EAA0Bmb,SAAS,CAACC,YAAV,CAAuB,CAAvB,EAA0Bjf,UAApD;;EACA,gBAAIgf,SAAJ,EAAe;EACb3B,cAAAA,gBAAgB,CAAC2B,SAAS,CAACC,YAAV,CAAuB,CAAvB,EAA0Bjf,UAA3B,CAAhB;EACD;;EACDrK,YAAAA,OAAO,CAACkO,GAAR,CAAY,OAAZ,EAAqB+P,KAArB;EACD,WAbD,EAaG,KAbH;EAcD;;EACD;EApBJ;EAwBD;EACF,CAlDM;;ECtNA,MAAMsL,gBAAgB,GAAG,CAACC,MAAD,EAAS7J,gBAAT,KAA8B;EAC5D,QAAM8J,IAAI,GAAGv5B,MAAM,CAAC8Z,MAAP,CAAcwf,MAAd,CAAb;;EACA,MAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;EAC9B,QAAI9J,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvC+b,MAAAA,IAAI,CAAC9J,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAA1B,CAAJ;EACD,KAFD,MAEO;EACL+b,MAAAA,IAAI;EACL;EACF;EACF,CATM;EAWA,MAAMC,0BAA0B,GAAG,CAAC/J,gBAAD,EAAmBpV,IAAnB,KAA4B;EACpE,QAAMgV,MAAM,qDACkBI,gBAAgB,CAAC9W,OADnC,8oCAoB8D8W,gBAAgB,CAAC5W,UApB/E,iIAAZ;EA0BA,SAAOwB,IAAI,CAACje,OAAL,CAAa,iBAAb,YAAmCizB,MAAnC,UAAP;EACD,CA5BM;EA8BA,MAAMoK,eAAe,GAAG,CAACC,SAAD,EAAYC,QAAZ,KAAyB;EACtD,QAAM/qB,OAAO,GAAGF,iBAAiB,EAAjC;EACA,QAAMa,SAAS,GAAGX,OAAO,CAAC+qB,QAAD,CAAP,CAAkBv0B,MAApC;;EACA,MAAImK,SAAS,IAAI,IAAb,IAAqBoqB,QAAzB,EAAmC;EACjC,SAAK,MAAMh6B,GAAX,IAAkB+5B,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAAC7+B,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,eAAO4P,SAAS,CAACmqB,SAAS,CAAC/5B,GAAD,CAAV,CAAhB;;EACA,YAAI/B,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAJ,EAAwC;EACtC,gBAAMwY,WAAW,GAAGjR,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAApB;EACA,gBAAMgQ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,cAAI2Y,WAAW,CAACxI,IAAD,CAAX,IAAqBwI,WAAW,CAACxI,IAAD,CAAX,CAAkBizB,QAAlB,CAArB,IAAoDzqB,WAAW,CAACxI,IAAD,CAAX,CAAkBizB,QAAlB,EAA4BD,SAAS,CAAC/5B,GAAD,CAArC,CAAxD,EAAqG;EACnG,mBAAOuP,WAAW,CAACxI,IAAD,CAAX,CAAkBizB,QAAlB,EAA4BD,SAAS,CAAC/5B,GAAD,CAArC,CAAP;EACA/B,YAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF;EACF;EACF;EACF;;EACDJ,EAAAA,kBAAkB,CAACF,OAAD,CAAlB;EACD,CAnBM;EAqBA,MAAMgrB,aAAa,GAAIC,SAAD,IAAe;EAC1C,MAAIx5B,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,IAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,QAAIwJ,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBy3B,SAAtB;EACA;EACD;EACF;;EACD,OAAK,MAAMl+B,GAAX,IAAkBk+B,SAAlB,EAA6B;EAC3B,QAAIA,SAAS,CAACh/B,cAAV,CAAyBc,GAAzB,CAAJ,EAAmC;EACjC,YAAMm+B,SAAS,GAAGz5B,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,CAAlB;EACA,YAAMo+B,SAAS,GAAGF,SAAS,CAACl+B,GAAD,CAA3B;;EACA,UAAI0E,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,KAA4B,IAAhC,EAAsC;EACpC,YAAIo+B,SAAS,CAAC,CAAD,CAAT,IAAgB,IAAhB,IAAwBA,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAApD,EAAyD;EACvDz5B,UAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bo+B,SAA3B;EACD;EACF,OAJD,MAIO;EACL15B,QAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bo+B,SAA3B;EACD;EACF;EACF;EACF,CArBM;EAuBA,MAAMC,mBAAmB,GAAG,CAACvK,gBAAD,EAAmBwK,QAAnB,KAAgC;EACjE,QAAM77B,IAAI,GAAG,EAAb;EACAA,EAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,EAAAA,IAAI,CAACmK,OAAL,GAAehQ,mBAAf;EACA6F,EAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,KAAC5Q,OAAD,GAAWm3B,gBAAgB,CAAC9W;EAA9B,GAAf;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/Bza,IAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,MAAAA,UAAU,EAAE4W,gBAAgB,CAAC5W;EAAhD,KAAf;EACD;;EACDohB,EAAAA,QAAQ,CAAC9wB,YAAT,CAAsB/K,IAAtB;EACD,CATM;EAWA,MAAM87B,eAAe,GAAG,CAACzF,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CsmB,QAA/C,EAAyDC,OAAzD,EAAkEpiB,QAAlE,KAA+E;EAC5G,MAAIwc,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,QAAI6F,UAAJ;EACA,QAAIC,aAAJ;;EACA,QAAIH,QAAJ,EAAc;EACZE,MAAAA,UAAU,GAAGH,UAAb;EACD,KAFD,MAEO,IAAIA,UAAU,KAAK,IAAnB,EAAyB;EAC9BI,MAAAA,aAAa,GAAGJ,UAAU,CAAChsB,sBAAX,CAAkC,UAAlC,CAAhB;;EACA,UAAIosB,aAAa,IAAI,IAAjB,IAAyBA,aAAa,CAACx+B,MAAd,KAAyB,CAAtD,EAAyD;EACvDu+B,QAAAA,UAAU,GAAGC,aAAa,CAAC,CAAD,CAA1B;EACD;EACF;;EACD,UAAMjB,MAAM,GAAG7J,gBAAgB,CAAC1W,OAAjB,CAAyBugB,MAAxC;EACA,UAAMlc,SAAS,GAAGqS,gBAAgB,CAAC1W,OAAjB,CAAyB4e,OAA3C;;EACA,QAAIva,SAAS,IAAI,IAAjB,EAAuB;EACrBqX,MAAAA,OAAO,IAAI+F,eAAe,CAACH,OAAD,EAAUpiB,QAAV,CAA1B;EACD;;EAED,QAAIqiB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,CAACzN,OAAX,GAAqB,MAAM;EACzB;EACA,YAAIyM,MAAM,IAAI,IAAd,EAAoB;EAClB;EACA,cAAIlc,SAAS,IAAI,IAAjB,EAAuB;EACrBtQ,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACD;;EACD4E,UAAAA,gBAAgB,CAACC,MAAD,EAAS7J,gBAAT,CAAhB,CALkB;;EAOlB9b,UAAAA,WAAW,CAAC,IAAD,EAAOG,KAAP,EAAcmE,QAAQ,CAACe,SAAvB,CAAX;EACD,SARD,MAQO;EACL,gBAAMyhB,MAAM,GAAGhL,gBAAgB,CAAC1W,OAAjB,CAAyB4e,OAAzB,GAAmClI,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAA5D,GAAsE,IAAIvG,GAAJ,CAAQuB,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAjC,EAA0CnH,YAA1C,CAAuDvpB,GAAvD,CAA2D,GAA3D,CAArF;EACA,gBAAM8L,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;;EAEA,cAAI+6B,MAAM,KAAK,YAAf,EAA6B;EAC3B,gBAAI,CAAChL,gBAAgB,CAAC1W,OAAjB,CAAyB4e,OAA9B,EAAuC;EACrC33B,cAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,gBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,gBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,eAAlD;EACD,aAH0B;;;EAK3B7Y,YAAAA,MAAM,CAAC+N,SAAP,CAAiB2sB,aAAjB,CAA+B52B,IAA/B,CAAoC;EAClC62B,cAAAA,UAAU,EAAE;EADsB,aAApC;EAGAhnB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WATD,MASO,IAAIyhB,MAAM,KAAK,MAAf,EAAuB;EAC5B;EACA9mB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WAHM,MAGA;EACL;EACA,gBAAIyW,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;;EACA,kBAAIhF,gBAAgB,CAAC1W,OAAjB,CAAyB,aAAzB,CAAJ,EAA6C;EAC3CpF,gBAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD;;EACD,kBAAI,CAACyW,gBAAgB,CAAC1W,OAAjB,CAAyB4e,OAA9B,EAAuC;EACrC33B,gBAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,kBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,kBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,iBAAlD;EACD;EACF,aARD,MAQO;EACL7Y,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF;EACF,OAzCD;EA0CD;EACF;EACF,CA/DM;EAiEA,MAAM+F,eAAe,GAAG,CAACH,OAAD,EAAUpiB,QAAV,KAAuB;EACpD,QAAMjW,OAAO,GAAGq4B,OAAO,CAAC5zB,OAAR,EAAhB;;EACA,QAAMm0B,UAAU,GAAG3iB,QAAQ,CAACpS,sBAAT,EAAnB;;EACA,SAAO,aAAavG,kBAAkB,CAAC2L,gBAAgB,CAACjJ,OAAO,GAAG,GAAV,GAAgB44B,UAAU,CAAC/lB,CAA3B,GAA+B,GAA/B,GAAqC+lB,UAAU,CAACz1B,CAAjD,CAAjB,CAAtC;EACD,CAJM;;ECvKA,MAAM01B,oBAAoB,GAAG,CAACpL,gBAAD,EAAmBxX,QAAnB,KAAgC;EAClE,QAAMnE,KAAK,GAAG,kBAAd;EACA,QAAMgnB,cAAc,GAAGh8B,QAAQ,CAACiL,aAAT,CAAuB,wBAAvB,CAAvB;EACA+wB,EAAAA,cAAc,CAAC51B,OAAf,GAAyB+S,QAAzB;EACA6iB,EAAAA,cAAc,CAACtiB,MAAf,GAAwBiX,gBAAxB;EACA,QAAM4H,WAAW,GAAGv4B,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAApB;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC1d,KAAZ,CAAkBW,UAAlB,GAA+B,QAA/B;EACA+c,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwBqsB,cAAxB;EACD,CATM;;ECAA,MAAMC,kBAAkB,GAAIphB,KAAD,IAAW;EAC3C,QAAMqhB,gBAAgB,GAAGrhB,KAAK,CAACshB,IAAN,CAAWC,aAAX,GAA2BvhB,KAAK,CAACshB,IAAN,CAAWE,MAAX,CAAkBC,WAAlB,GAAgC,CAA3D,GAA+D,CAAxF;EACA,QAAMC,WAAW,GAAG,KAAK,CAAzB,CAF2C;;EAG3C,QAAMC,gBAAgB,GAAG,MAAMD,WAAN,GAAoBL,gBAA7C;EAEA,+GAMwBrhB,KAAK,CAAC4hB,OAAN,CAAcC,KAAd,IAAuB,oBAN/C,gLAgBwB7hB,KAAK,CAACshB,IAAN,CAAWO,KAhBnC,qCAiBqB7hB,KAAK,CAACshB,IAAN,CAAWQ,YAjBhC,qDAmBaH,gBAnBb,2HAuBM3hB,KAAK,CAACshB,IAAN,CAAWC,aAAX,qCACgBvhB,KAAK,CAACshB,IAAN,CAAWE,MAAX,CAAkBC,WADlC,wCAEgBzhB,KAAK,CAACshB,IAAN,CAAWE,MAAX,CAAkBhd,WAFlC,+CAIE,EA3BR,yfAsDaxE,KAAK,CAACiD,IAAN,CAAWwB,UAtDxB,gKA8DazE,KAAK,CAACiD,IAAN,CAAWyB,gBA9DxB,4kBAyFwB1E,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4Bpd,WAzFpD,6BA0Fa3E,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4B3Y,SA1FzC,qCA2FqBpJ,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4BD,YA3FjD,wBA4FM9hB,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4BR,aAA5B,uCAEkBvhB,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4BP,MAA5B,CAAmCC,WAFrD,0CAGkBzhB,KAAK,CAAC2C,OAAN,CAAcof,aAAd,CAA4BP,MAA5B,CAAmChd,WAHrD,mDAME,eAlGR,wEAsGwBxE,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8Brd,WAtGtD,6BAuGa3E,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8B5Y,SAvG3C,qCAwGqBpJ,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8BF,YAxGnD,wBAyGM9hB,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8BT,aAA9B,uCAEkBvhB,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8BR,MAA9B,CAAqCC,WAFvD,0CAGkBzhB,KAAK,CAAC2C,OAAN,CAAcqf,eAAd,CAA8BR,MAA9B,CAAqChd,WAHvD,mDAME,eA/GR;EAsHD,CA3HM;EA6HA,MAAMyd,iBAAiB,GAAIjiB,KAAD,IAAW;EAC1C,kHAIwBA,KAAK,CAACshB,IAAN,CAAW/c,eAJnC;EAuED,CAxEM;;EC7HA,MAAM2d,QAAQ,GAAG,MAAM;EAC5B,QAAMC,EAAE,GAAGle,SAAS,CAACme,SAArB;EACA,SAAOD,EAAE,CAAC/yB,QAAH,CAAY,QAAZ,KAAyB+yB,EAAE,CAAC/yB,QAAH,CAAY,OAAZ,CAAhC;EACD,CAHM;EAKA,MAAMizB,SAAS,GAAG,MAAM;EAC7B,QAAMF,EAAE,GAAGle,SAAS,CAACme,SAArB;EACA,SAAOD,EAAE,CAAC/yB,QAAH,CAAY,SAAZ,KAA0B+yB,EAAE,CAAC/yB,QAAH,CAAY,OAAZ,CAAjC;EACD,CAHM;EAKA,MAAMkzB,QAAQ,GAAG,MAAM;EAC5B,QAAMH,EAAE,GAAGle,SAAS,CAACme,SAArB,CAD4B;;EAG5B,SAAOD,EAAE,CAAC/yB,QAAH,CAAY,QAAZ,KACA,CAAC+yB,EAAE,CAAC/yB,QAAH,CAAY,OAAZ,CADD,IAEA,CAAC+yB,EAAE,CAAC/yB,QAAH,CAAY,OAAZ,CAFD,IAGA,CAAC+yB,EAAE,CAAC/yB,QAAH,CAAY,QAAZ,CAHD,IAIA,CAAC+yB,EAAE,CAAC/yB,QAAH,CAAY,SAAZ,CAJR;EAKD,CARM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECMQ,MAAMmzB,mBAAN,SAAkCv0B,KAAlC,CAAwC;EAQrDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXwJ,MAAAA,OAFW;EAGXF,MAAAA,OAHW;EAIXqI,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,0EAAuB,6DAAvB;EACA,sEAAqB,IAArB;EACA,oEAAkBnF,MAAlB;EACA,8DAAexM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACD;;EAEDvJ,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CmlC,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,sEAAmBA,WAAnB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAax1B,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAEDy1B,EAAAA,MAAM,GAAgB;EAAA,QAAd1Y,OAAc,uEAAJ,EAAI;EACpB,UAAM;EAAE2Y,MAAAA,MAAF;EAAU1B,MAAAA;EAAV,QAAyBjX,OAA/B;EACA4Y,IAAAA,UAAU,6BAAC,IAAD,qDAAe,IAAf,uDAA8B,IAA9B,2BAA6CD,MAA7C,EAAqD1B,UAArD,8BAAiE,IAAjE,gCAAV;EACD;;EAEDtyB,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,kGAAmB,IAAnB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAaDk0B,EAAAA,yBAAyB,CAAEC,oBAAF,EAAwBC,iBAAxB,EAA2CC,aAA3C,EAA0DC,cAA1D,EAA0E;EACjG,QAAId,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,4GAAsCQ,oBAAtC,EAA4DC,iBAA5D;EACD,KAFD,MAEO,IAAIR,QAAQ,EAAZ,EAAgB;EACrB,8FAA+BO,oBAA/B,EAAqDE,aAArD,EAAoEC,cAApE,EAAoFF,iBAApF;EACD;EACF;;EAEDG,EAAAA,uBAAuB,CAAEC,oBAAF,EAAwB;EAC7C,sEAAqBA,oBAArB;EACD;;EA4aDC,EAAAA,cAAc,CAAEC,OAAF,EAAWF,oBAAX,EAAiC;EAC7Cx8B,IAAAA,GAAG,CAACkC,cAAJ,GAAqBw6B,OAArB;;EACA,QAAIF,oBAAoB,IAAI,IAA5B,EAAkC;EAChC,WAAKD,uBAAL,CAA6BC,oBAA7B;EACD;;EACD,QAAIx8B,GAAG,CAACkC,cAAJ,IAAsBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAvC,EAA4D;EAC1D,0GAAqCvC,GAAG,CAACsC,QAAJ,CAAaw5B,WAAlD;EACD,KAFD,MAEO,IAAI,CAAC97B,GAAG,CAACkC,cAAL,IAAuBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAxC,EAA6D;EAClE,8DAAa+D,KAAb,CAAmB,4FAAnB;EACD;EACF;;EAvfoD;;+CA4CtCw1B,aAAa;EAC1B,MAAI97B,GAAG,CAACkC,cAAJ,IAAsB45B,WAAW,CAACpgC,MAAZ,GAAqB,CAA/C,EAAkD;EAChD,wGAAqCogC,WAArC;EACD,GAFD,MAEO,IAAI97B,GAAG,CAACkC,cAAJ,IAAsB,IAAtB,IAA8B45B,WAAW,CAACpgC,MAAZ,GAAqB,CAAvD,EAA0D;EAC/DsE,IAAAA,GAAG,CAACsC,QAAJ,CAAaC,mBAAb,GAAmC,IAAnC;EACAvC,IAAAA,GAAG,CAACsC,QAAJ,CAAaw5B,WAAb,GAA2BA,WAAW,CAACvuB,KAAZ,EAA3B;EACD,GAHM,MAGA,IAAIvN,GAAG,CAACkC,cAAJ,KAAuB,KAAvB,IAAgC45B,WAAW,CAACpgC,MAAZ,GAAqB,CAAzD,EAA4D;EACjE,4DAAa4K,KAAb,CAAmB,+DAAnB;EACD;EACF;;yEAc4B;EAC3B,SAAO,iBAAiB3G,MAAxB;EACD;;uEAE0Bw8B,sBAAsBE,eAAeC,gBAAgBF,mBAAmB;EACjG,MAAI,6FAAoC,mEAAsB,IAA9D,EAAoE;EAClE7+B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACAmkB,IAAAA,SAAS,CAACof,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoD5S,IAApD,CAA0DqT,YAAD,IAAkB;EACzEl9B,MAAAA,MAAM,CAACm9B,YAAP,CAAoBC,iBAApB,GAAwCvT,IAAxC,CAA8CwT,UAAD,IAAgB;EAC3D,YAAIA,UAAU,KAAK,SAAnB,EAA8B;EAC5B,gBAAMC,YAAY,GAAG;EACnBT,YAAAA,oBAAoB,8BAAE,IAAF,+BADD;EAEnBU,YAAAA,eAAe,EAAE;EAFE,WAArB;;EAIA,kEAAaC,IAAb,CAAkB,YAAYv/B,IAAI,CAACC,SAAL,CAAeo/B,YAAf,CAA9B;;EACA,gBAAMG,gBAAgB,GAAG,MAAM;EAC7BP,YAAAA,YAAY,CAACQ,WAAb,CAAyBC,SAAzB,CAAmCL,YAAnC,EAAiDzT,IAAjD,CAAuDtV,YAAD,IAAkB;EACtE,sEAAaipB,IAAb,CAAkB,0CAA0CjpB,YAAY,CAACqpB,QAAzE;;EACA,sEAAaJ,IAAb,CAAkB,wBAAwBv/B,IAAI,CAACC,SAAL,CAAe;EACvD2+B,gBAAAA,oBAAoB,8BAAE,IAAF,+BADmC;EAEvDU,gBAAAA,eAAe,EAAE;EAFsC,eAAf,CAA1C;;EAIA,sEAAaC,IAAb,CAAkB,iCAAiCv/B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA,oBAAMspB,gBAAgB,GAAG5/B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EAEAspB,cAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bl+B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAha,cAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDmlC,gBAAxD;;EACA,wEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,kBAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,gBAAAA,oBAAoB;EACrB;;EACD,oBAAMuB,mBAAmB,GAAGj/B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,kBAAIgqB,mBAAJ,EAAyB;EACvBA,gBAAAA,mBAAmB,CAAC3vB,UAApB,CAA+BC,WAA/B,CAA2C0vB,mBAA3C;EACD;EACF,aArBD;EAsBD,WAvBD;;EAyBA,gBAAMf,aAAa,GAAGE,YAAY,CAACc,UAAb,IAA2Bd,YAAY,CAACe,OAAxC,IAAmDf,YAAY,CAACgB,MAAtF;;EACA,cAAIlB,aAAa,IAAIA,aAAa,CAACmB,KAAd,KAAwB,WAA7C,EAA0D;EACxD;EACAV,YAAAA,gBAAgB;EACjB,WAHD,MAGO,IAAIT,aAAJ,EAAmB;EACxB;EACAA,YAAAA,aAAa,CAAC3jB,gBAAd,CAA+B,aAA/B,EAA+C0U,KAAD,IAAW;EACvD,kBAAIA,KAAK,CAACvV,MAAN,CAAa2lB,KAAb,KAAuB,WAA3B,EAAwC;EACtC,wEAAaX,IAAb,CAAkB,yDAAlB;;EACAC,gBAAAA,gBAAgB;EACjB;EACF,aALD;EAMD;EACF;EACF,OA9CD;EA+CD,KAhDD;EAiDD,GAnDD,MAmDO;EACL;EACA,QAAI,OAAOf,aAAP,KAAyB,WAA7B,EAA0C;EACxC,8DAAa/1B,KAAb,CAAmB,0CAAnB;EACD;;EACD,QAAI,OAAOg2B,cAAP,KAA0B,WAA9B,EAA2C;EACzC,8DAAah2B,KAAb,CAAmB,oDAAnB;EACD;;EACD,QAAI,YAAY3G,MAAZ,IAAsB,sBAAsBA,MAAM,CAACo+B,MAAvD,EAA+D;EAC7Dp+B,MAAAA,MAAM,CAACo+B,MAAP,CAAcC,gBAAd,CAA+BjB,iBAA/B,CACET,cADF,EAEED,aAFF,EAEiB,EAFjB,EAEsBnoB,YAAD,IAAkB;EACnC,YAAIA,YAAY,CAAC8oB,UAAb,KAA4B,SAAhC,EAA2C;EACzC,gBAAMQ,gBAAgB,GAAG5/B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EACAspB,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BrpB,YAAY,CAAC+pB,WAAzC;EACAT,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;;EACA,kEAAaf,IAAb,CAAkB,wBAAwBv/B,IAAI,CAACC,SAAL,CAAe;EACvDy+B,YAAAA,cADuD;EAEvDD,YAAAA;EAFuD,WAAf,CAA1C;;EAIA,kEAAac,IAAb,CAAkB,iCAAiCv/B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA3W,UAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDmlC,gBAAxD;;EAEA,oEAAcC,aAAd,CAA4BD,gBAA5B;;EACA,kEAAaL,IAAb,CAAkB,+CAA+CjpB,YAAY,CAAC+pB,WAA9E;EACD,SAdD,MAcO,IAAI/pB,YAAY,CAAC8oB,UAAb,KAA4B,QAAhC,EAA0C;EAC/C,kEAAaG,IAAb,CAAkB,sCAAlB;EACD;EACF,OApBH;EAqBD;EACF;EACF;;qFAKiChB,sBAAsBC,mBAAmB;EACzE,MAAI+B,iBAAiB,GAAG,EAAxB;;EAEA,MAAI,mBAAmB5gB,SAAvB,EAAkC;EAChCA,IAAAA,SAAS,CAACof,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoD5S,IAApD,CAA0DqT,YAAD,IAAkB;EACzE,UAAI,OAAOuB,iBAAP,KAA6B,WAAjC,EAA8C;EAAE;EAC9C;EACA;EACA,eAAO,IAAI7V,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACqU,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD;;EACDsB,MAAAA,iBAAiB,GAAGtB,YAAY,CAACwB,KAAjC,CANyE;EASzE;EACA;;EACA,YAAMC,YAAY,GAAG,wBAArB;EACA,YAAMC,qBAAqB,GAAGD,YAAY,CAACvjC,IAAb,CAAkBqhC,iBAAlB,CAA9B;;EACA,UAAImC,qBAAJ,EAA2B;EACzB,eAAOhhB,SAAS,CAACof,aAAV,CAAwB6B,KAA/B;EACD,OAFD,MAEO;EACL,YAAIhD,QAAQ,EAAZ,EAAgB;EACd,iBAAO,IAAIjT,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACqU,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD,SAFD,MAEO;EACL,iBAAOtf,SAAS,CAACof,aAAV,CAAwB8B,gBAAxB,EAAP;EACD;EACF;EACF,KAtBD,EAsBGjV,IAtBH,CAsBSkV,yBAAD,IAA+B;EACrC;EACA,UAAI/C,SAAS,MAAMr0B,KAAK,CAACC,OAAN,CAAcm3B,yBAAd,CAAnB,EAA6D;EAC3DA,QAAAA,yBAAyB,GAAGA,yBAAyB,CAACre,MAA1B,CAAkC9V,CAAD,IAAOA,CAAC,CAAC8zB,KAAF,KAAYF,iBAApD,EAAuE,CAAvE,CAA5B;EACD;;EACD,YAAMlB,YAAY,GAAG;EAAEC,QAAAA,eAAe,EAAE;EAAnB,OAArB;;EAEA,UAAI,mEAAsB,IAA1B,EAAgC;EAC9BD,QAAAA,YAAY,CAACT,oBAAb,GAAoCzyB,qBAAqB,6BAAC,IAAD,gCAAzD;EACD;;EAED20B,MAAAA,yBAAyB,CAACrB,WAA1B,CAAsCC,SAAtC,CAAgDL,YAAhD,EACGzT,IADH,CACStV,YAAD,IAAkB;EACtB,gEAAaipB,IAAb,CAAkB,0CAA0CjpB,YAAY,CAACqpB,QAAzE;;EACA,gEAAah8B,KAAb,CAAmB,wBAAwB3D,IAAI,CAACC,SAAL,CAAeo/B,YAAf,CAA3C;;EACA,gEAAa17B,KAAb,CAAmB,iCAAiC3D,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAApD,EAHsB;;;EAMtB,cAAMspB,gBAAgB,GAAG5/B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB,CANsB;;EAStB,YAAIsnB,QAAQ,EAAZ,EAAgB;EACdgC,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bl+B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAimB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;EACD,SAHD,MAGO,IAAIvC,SAAS,EAAb,EAAiB;EACtB6B,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0Bl+B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAimB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,SAA3B;EACD;;EACD3gC,QAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDmlC,gBAAxD;;EACA,kEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,YAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,UAAAA,oBAAoB;EACrB;;EACD,cAAMuB,mBAAmB,GAAGj/B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,YAAIgqB,mBAAJ,EAAyB;EACvBA,UAAAA,mBAAmB,CAAC3vB,UAApB,CAA+BC,WAA/B,CAA2C0vB,mBAA3C;EACD;EACF,OA3BH,EA2BKjU,KA3BL,CA2BYnjB,KAAD,IAAW;EAClB;EACAo4B,QAAAA,yBAAyB,CAACrB,WAA1B,CAAsCsB,eAAtC,GAAwDnV,IAAxD,CAA8DtV,YAAD,IAAkB;EAC7E,cAAIA,YAAY,KAAK,IAArB,EAA2B;EACzBA,YAAAA,YAAY,CAAC0qB,WAAb,GAA2BpV,IAA3B,CAAiCqV,UAAD,IAAgB;EAC9C;EACA,sEAAa1B,IAAb,CAAkB,2BAAlB;;EACAx9B,cAAAA,MAAM,CAAC+N,SAAP,CAAiB2sB,aAAjB,CAA+B52B,IAA/B,CAAoC;EAClC62B,gBAAAA,UAAU,EAAE;EADsB,eAApC;EAGD,aAND,EAMG7Q,KANH,CAMUvrB,CAAD,IAAO;EACd;EACA,sEAAaoI,KAAb,CAAmB,0BAA0BpI,CAA7C;EACD,aATD;EAUD;EACF,SAbD;;EAcA,gEAAaoI,KAAb,CAAmB,wBAAwBA,KAA3C;EACD,OA5CH;EA6CD,KA9ED,EA8EGmjB,KA9EH,CA8EUrpB,GAAD,IAAS;EAChB,8DAAakG,KAAb,CAAmB,uCAAuClG,GAA1D;EACD,KAhFD;EAiFD;EACF;;mDAEiB;EAChB,QAAM0+B,SAAS,GAAGrgC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAlB;EACAo1B,EAAAA,SAAS,CAAC7wB,YAAV,CAAuB,MAAvB,EAA+B,iBAA/B;EACA6wB,EAAAA,SAAS,CAAC7wB,YAAV,CAAuB,IAAvB,EAA6B,eAA7B;EACA6wB,EAAAA,SAAS,CAAC7wB,YAAV,CAAuB,KAAvB,8BAA8B,IAA9B,qCAJgB;;EAOhBxP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqD0wB,SAArD;EAEA,SAAOA,SAAP;EACD;;yDAEoB;EACnB,QAAMA,SAAS,GAAGrgC,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAlB;EACAorB,EAAAA,SAAS,CAAC/wB,UAAV,CAAqBC,WAArB,CAAiC8wB,SAAjC;EACD;;mFAEgChD,aAAa;EAC5C;EACA,MAAIiD,SAAJ;EACA,MAAIC,QAAJ;EACA,MAAIC,YAAJ;EACA,MAAIC,gBAAJ;EACA,MAAIC,aAAJ;EACA,MAAI7E,UAAJ;EACA,MAAI8E,qBAAJ;EACA,MAAIC,UAAJ;EACA,MAAIC,cAAJ;EACA,MAAInD,oBAAJ;EACA,MAAIC,iBAAJ;EACA,MAAImD,cAAJ;EACA,MAAIC,eAAJ;EACA,MAAInD,aAAJ;EACA,MAAIoD,qBAAJ;EACA,QAAMC,yBAAyB,GAAG9D,QAAQ,MAAO,iBAAiBj8B,MAAhC,IAA2CpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA3C,IAAuG,oEAAuB,IAAhK;;EAEA,MAAI0iC,WAAW,CAACpgC,MAAZ,KAAuB,CAA3B,EAA8B;EAC5B,QAAI5B,QAAQ,CAACgiC,WAAW,CAAC,CAAD,CAAZ,CAAZ,EAA8B;EAC5B,YAAM6D,QAAQ,GAAG7D,WAAW,CAAC,CAAD,CAA5B;EACAiD,MAAAA,SAAS,GAAGY,QAAQ,CAACZ,SAArB;EACAC,MAAAA,QAAQ,GAAGW,QAAQ,CAACX,QAApB;EACAC,MAAAA,YAAY,GAAGU,QAAQ,CAACV,YAAxB;EACAC,MAAAA,gBAAgB,GAAGS,QAAQ,CAACT,gBAA5B;EACAC,MAAAA,aAAa,GAAGQ,QAAQ,CAACR,aAAzB;EACA7E,MAAAA,UAAU,GAAGqF,QAAQ,CAACrF,UAAtB;EACA8E,MAAAA,qBAAqB,GAAGO,QAAQ,CAACP,qBAAjC;EACAC,MAAAA,UAAU,GAAGM,QAAQ,CAACN,UAAtB;EACAC,MAAAA,cAAc,GAAGK,QAAQ,CAACL,cAA1B;EACAnD,MAAAA,oBAAoB,GAAGwD,QAAQ,CAACxD,oBAAhC;EACAC,MAAAA,iBAAiB,GAAGuD,QAAQ,CAACvD,iBAA7B;EACAmD,MAAAA,cAAc,GAAGI,QAAQ,CAACJ,cAA1B;EACAC,MAAAA,eAAe,GAAGG,QAAQ,CAACH,eAA3B;EACAnD,MAAAA,aAAa,GAAGsD,QAAQ,CAACtD,aAAzB;EACAoD,MAAAA,qBAAqB,GAAGE,QAAQ,CAACF,qBAAjC;EACD;EACF,GAnBD,MAmBO;EACLV,IAAAA,SAAS,GAAGjD,WAAW,CAAC,CAAD,CAAvB;EACAkD,IAAAA,QAAQ,GAAGlD,WAAW,CAAC,CAAD,CAAtB;EACAmD,IAAAA,YAAY,GAAGnD,WAAW,CAAC,CAAD,CAA1B;EACAoD,IAAAA,gBAAgB,GAAGpD,WAAW,CAAC,CAAD,CAA9B;EACAqD,IAAAA,aAAa,GAAGrD,WAAW,CAAC,CAAD,CAA3B;EACAxB,IAAAA,UAAU,GAAGwB,WAAW,CAAC,CAAD,CAAxB;EACAsD,IAAAA,qBAAqB,GAAGtD,WAAW,CAAC,CAAD,CAAnC;EACD;;EAED,MAAIxB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,IAAAA,UAAU,GAAG,KAAb;EACD;;EAED,MAAI8B,iBAAiB,IAAI,IAAzB,EAA+B;EAC7BA,IAAAA,iBAAiB,GAAG,kBAApB;EACD,GAtD2C;;;EAyD5C,MAAI,OAAO7e,SAAS,CAACof,aAAjB,KAAmC,WAAvC,EAAoD;EAClD;EACD;;EAED,QAAMiD,MAAM,GAAGL,cAAc,IAAI,IAAlB,IAA0BC,eAAe,IAAI,IAA5D,CA7D4C;;EAgE5C,MAAI7/B,MAAM,CAACG,QAAP,CAAgB+/B,QAAhB,KAA6B,QAA7B,IAAyCphC,QAAQ,CAACqB,QAAT,CAAkBC,QAAlB,KAA+B,WAAxE,IAAuF,CAAC6/B,MAA5F,EAAoG;EAClG,4DAAat5B,KAAb,CAAmB,oEAAnB;;EACA;EACD;EAED;EACJ;EACA;EACA;;;EACI,MAAIk1B,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,QAAI,6BAAC,IAAD,yDAAJ,EAAuC;EACrC,8DAAar1B,KAAb,CAAmB,wDAAnB;;EACA;EACD;EACF,GA9E2C;;;EAkF5C,MAAI,CAACs5B,MAAL,EAAa;EACX,UAAME,eAAe,IAAG,kBAAkBngC,MAArB,CAArB;;EACA,QAAI,CAACmgC,eAAD,IAAoBhD,YAAY,IAAI,IAAxC,EAA8C;EAC5C,8DAAax2B,KAAb,CAAmB,sDAAnB;;EACA;EACD,KALU;;;EAOX,QAAIw2B,YAAY,CAACE,UAAb,KAA4B,SAA5B,KAA0C0C,yBAAyB,IAAIlE,QAAQ,EAArC,IAA2CG,SAAS,EAA9F,CAAJ,EAAuG;EACrG;EACA,WAAKO,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD,KAJD,MAIO,IAAI3C,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACA;EACD;;EAED,QAAI1C,UAAJ,EAAgB;EACd,WAAK4B,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD;EACF,GAtG2C;;;EAyG5C,MAAI,CAACV,SAAD,IAAc,CAACC,QAAf,IAA2B,CAACC,YAA5B,IAA4C,CAACC,gBAAjD,EAAmE;EACjE,4DAAa54B,KAAb,CAAmB,wFAAnB;;EACA;EACD,GA5G2C;;;EA+G5C,MAAI64B,aAAa,IAAI,IAAjB,IAAyB,CAACA,aAAa,CAACh2B,KAAd,CAAoB,gBAApB,CAA9B,EAAqE;EACnEg2B,IAAAA,aAAa,GAAG,SAAhB,CADmE;EAEpE,GAjH2C;;;EAoH5C,QAAMne,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;;EACA,MAAKe,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAD,IAAiD,IAArD,EAA2D;EACzDkE,IAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD,GAFD,MAEO;EACL,QAAIoe,qBAAqB,IAAI,IAA7B,EAAmC;EACjC;EACAA,MAAAA,qBAAqB,GAAG,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAtC;EACD;;EAED,UAAMW,aAAa,GAAGxiC,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAtB;;EACA,QAAI2nB,GAAG,GAAG+e,aAAN,GAAsBX,qBAA1B,EAAiD;EAC/C,UAAI,CAACxD,QAAQ,EAAb,EAAiB;EACf;EACD,OAH8C;;;EAK/C,UAAI8D,yBAAyB,IAAI,oEAAuB,IAAxD,EAA8D;EAC5D;EACD;EACF,KARD,MAQO;EACLniC,MAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD;EACF;;EAED,MAAI4a,QAAQ,kCAAM,IAAN,yDAAR,IAAkD,oEAAuB,IAA7E,EAAmF;EACjFr+B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACD;;EAED,MAAIwmC,MAAJ,EAAY;EACV;EACA,UAAMI,WAAW,GAAGvhC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAApB;EACAs2B,IAAAA,WAAW,CAAC/xB,YAAZ,CAAyB,OAAzB,EAAkC,eAAlC;EACA+xB,IAAAA,WAAW,CAAC/xB,YAAZ,CAAyB,KAAzB,EAAgCuxB,eAAhC;EACA/gC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B4xB,WAA1B;EACArgC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C,UAAIA,KAAK,CAAC3vB,IAAN,IAAc,IAAlB,EAAwB;EACtB,YAAIzD,GAAG,GAAG,EAAV;;EACA,YAAI;EACFA,UAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAN;EACD,SAFD,CAEE,OAAOG,CAAP,EAAU;EACV;EACA;EACD;;EACD,YAAI5D,GAAG,CAACwjC,KAAJ,IAAa,IAAjB,EAAuB;EACrB,cAAIxjC,GAAG,CAAC2lC,IAAJ,KAAa,IAAb,IAAqB3lC,GAAG,CAACwjC,KAAJ,KAAc,KAAvC,EAA8C;EAC5C,gBAAIvgC,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,sEAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,YAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,gFAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,cAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C;EACAkG,cAAAA,MAAM,CAACugC,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCrkB,gBAAAA,KAAK,EAAEijB,SAD2B;EAElCpc,gBAAAA,IAAI,EAAEqc,QAF4B;EAGlCoB,gBAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,gBAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,gBAAAA,gBAAgB,EAAEA;EALgB,eAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,oBAAIA,OAAJ,EAAa;EACX;EACA,sBAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,oBAAAA,UAAU;EACX,mBAJU;;;EAMX1/B,kBAAAA,MAAM,CAAC6Z,IAAP,CAAY+lB,cAAZ;EACD,iBAPD,MAOO;EACL,sBAAI,OAAOD,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,oBAAAA,cAAc;EACf;EACF;;EACD;EACD,eApBD;EAqBD,aAvBD;EAwBD;EACF;EACF;EACF,KA5CD,EA4CG,KA5CH;EA6CD,GAnDD,MAmDO;EACL,QAAI/hC,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,8DAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,IAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,wEAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,MAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C,EADmC;;EAGnCkG,MAAAA,MAAM,CAACugC,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCrkB,QAAAA,KAAK,EAAEijB,SAD2B;EAElCpc,QAAAA,IAAI,EAAEqc,QAF4B;EAGlCoB,QAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,QAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,QAAAA,gBAAgB,EAAEA;EALgB,OAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,YAAIA,OAAJ,EAAa;EACX;EACA,cAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,YAAAA,UAAU;EACX;;EACD,eAAKnD,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACD,SAND,MAMO;EACL,cAAI,OAAOH,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,YAAAA,cAAc;EACf;EACF;;EACD;EACD,OAnBD;EAoBD,KAvBD;EAwBD;EACF;;EC3fI,MAAMgB,WAAW,GAAG,0pDAApB;EACA,MAAMC,kBAAkB,GAAG,s3CAA3B;;ECMP,IAAIC,YAAY,GAAG,IAAnB;EACA,IAAIxE,MAAM,GAAG,kBAAb;EACA,IAAIyE,mBAAmB,GAAG,IAA1B;EAEO,MAAMC,oBAAoB,GAAG,CAACC,aAAD,EAAgBtlC,MAAhB,EAAwBsJ,OAAxB,KAAoC;EACtE,QAAMi8B,WAAW,GAAGrjC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EAEA,QAAM0nC,gBAAgB,GAAG,MAAM;EAC7B7gC,IAAAA,GAAG,CAACkD,UAAJ,GAAiBy9B,aAAjB;EACApjC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzG,cAAhC,EAAgDwnC,aAAhD;EACD,GAHD;;EAKA,MAAIA,aAAa,CAAC5jB,SAAlB,EAA6B;EAC3B8jB,IAAAA,gBAAgB;EAChB5E,IAAAA,UAAU,CAAC5gC,MAAD,EAAS,IAAT,EAAesJ,OAAf,CAAV;EACD,GAHD,MAGO,IAAI/G,IAAI,CAACC,SAAL,CAAe+iC,WAAf,MAAgChjC,IAAI,CAACC,SAAL,CAAe8iC,aAAf,CAApC,EAAmE;EACxEE,IAAAA,gBAAgB;EACjB;EACF,CAdM;EAeA,MAAM5E,UAAU,GAAG,CAAC5gC,MAAD,EAAS2R,OAAT,EAAkBrI,OAAlB,EAA2Bm8B,YAA3B,EAAyCxG,UAAzC,EAAqDyG,YAArD,KAAsE;EAC9F,QAAMH,WAAW,GAAGrjC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EACA6G,EAAAA,GAAG,CAACkD,UAAJ,GAAiB09B,WAAjB;;EACA,MAAI,CAAC5gC,GAAG,CAACkD,UAAT,EAAqB;EACnB7H,IAAAA,MAAM,CAACiL,KAAP,CAAa,kCAAb;EACA;EACD;;EAED,MAAIw6B,YAAJ,EAAkB;EAAE9E,IAAAA,MAAM,GAAG8E,YAAT;EAAuB;;EAE3CL,EAAAA,mBAAmB,GAAG,IAAI5E,mBAAJ,CAAwB;EAAExgC,IAAAA,MAAF;EAAUwJ,IAAAA,OAAO,EAAE,EAAnB;EAAuBF,IAAAA,OAAvB;EAAgCqI,IAAAA;EAAhC,GAAxB,CAAtB;;EAEA,MAAIstB,UAAJ,EAAgB;EACdmG,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD;;EAED,QAAM;EAAEgF,IAAAA,OAAF;EAAWC,IAAAA,OAAX;EAAoBC,IAAAA,YAApB;EAAkCnkB,IAAAA;EAAlC,MAAgD/c,GAAG,CAACkD,UAA1D;;EAEA,MAAI6Z,SAAJ,EAAe;EACb,QAAI/c,GAAG,CAACkD,UAAJ,CAAei+B,SAAnB,EAA8BC,qBAAqB,CAACphC,GAAG,CAACkD,UAAL,EAAiB69B,YAAjB,CAArB;EAC9B,QAAI/gC,GAAG,CAACkD,UAAJ,CAAem+B,cAAnB,EAAmCC,cAAc,CAACthC,GAAG,CAACkD,UAAL,CAAd;EACpC,GAHD,MAGO;EACL,QAAI89B,OAAO,IAAIC,OAAO,KAAK,KAA3B,EAAkCG,qBAAqB,CAACphC,GAAG,CAACkD,UAAL,EAAiB69B,YAAjB,CAArB;EAClC,QAAIG,YAAJ,EAAkBI,cAAc,CAACthC,GAAG,CAACkD,UAAL,CAAd;EACnB;EACF,CA3BM;;EA6BP,MAAMq+B,2BAA2B,GAAG,UAACC,GAAD,EAA0B;EAAA,MAApBC,UAAoB,uEAAP,EAAO;EAC5D,QAAMxV,OAAO,GAAGxtB,QAAQ,CAACiL,aAAT,CAAuB83B,GAAvB,CAAhB;EACAznC,EAAAA,MAAM,CAAC2pB,OAAP,CAAe+d,UAAf,EAA2BzyB,OAA3B,CAAmC,UAAkB;EAAA,QAAjB,CAAC1T,GAAD,EAAML,KAAN,CAAiB;EACnDgxB,IAAAA,OAAO,CAAC3wB,GAAD,CAAP,GAAeL,KAAf;EACD,GAFD;EAGA,SAAOgxB,OAAP;EACD,CAND;;EAQO,MAAMmV,qBAAqB,GAAG,CAACM,UAAD,EAAaX,YAAb,KAA8B;EACjE,MAAItiC,QAAQ,CAACiV,cAAT,CAAwBla,0BAAxB,CAAJ,EAAyD;EAEzD,QAAM;EAAE2nC,IAAAA,SAAS,EAAE;EAAEQ,MAAAA,OAAF;EAAWroB,MAAAA;EAAX;EAAb,MAAoCooB,UAA1C,CAHiE;;EAMjE,QAAMhnB,OAAO,GAAG6mB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAEwE;EAAN,GAAR,CAA3C;EACA,QAAMooC,UAAU,GAAGL,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA9C;EACA,QAAM6sC,MAAM,GAAGN,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA1C;EAEA,QAAM0mB,oBAAoB,GAAG6lB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAAxD;EACA,QAAM4mB,aAAa,GAAG2lB,2BAA2B,CAAC,KAAD,EAAQ;EACvDvsC,IAAAA,EAAE,EAAE,eADmD;EAEvD43B,IAAAA,GAAG,EAAE+U,OAAO,CAACG,IAAR,CAAan5B,IAAb,KAAsB,SAAtB,uCAA+D43B,kBAA/D,IAAsFoB,OAAO,CAACG,IAAR,CAAa94B;EAFjD,GAAR,CAAjD;EAKA0S,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EAEA,QAAMC,gBAAgB,GAAG0lB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EACA6mB,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BmzB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE,OAAN;EAAe+9B,IAAAA,WAAW,EAAE4O,OAAO,CAAC7lB;EAApC,GAAR,CAAxD;EACAD,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BmzB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE,aAAN;EAAqB+9B,IAAAA,WAAW,EAAE4O,OAAO,CAAC3lB;EAA1C,GAAR,CAAxD;EAEAN,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EAEA,QAAMK,gBAAgB,GAAGqlB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EAEA,QAAMqmC,aAAa,GAAGkG,2BAA2B,CAAC,QAAD,EAAW;EAC1DvsC,IAAAA,EAAE,EAAE,eADsD;EAE1D+9B,IAAAA,WAAW,EAAE4O,OAAO,CAAC1lB,OAAR,CAAgB8lB;EAF6B,GAAX,CAAjD;EAIA,QAAMzG,eAAe,GAAGiG,2BAA2B,CAAC,QAAD,EAAW;EAC5DvsC,IAAAA,EAAE,EAAE,iBADwD;EAE5D+9B,IAAAA,WAAW,EAAE4O,OAAO,CAAC1lB,OAAR,CAAgB+lB;EAF+B,GAAX,CAAnD;EAIA9lB,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BktB,eAA7B;EACApf,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BitB,aAA7B;EAEAwG,EAAAA,MAAM,CAACzzB,WAAP,CAAmBsN,oBAAnB;EACAmmB,EAAAA,MAAM,CAACzzB,WAAP,CAAmB8N,gBAAnB,EAtCiE;;EAyCjE,QAAM4W,YAAY,GAAGyO,2BAA2B,CAAC,OAAD,EAAU;EAAExO,IAAAA,WAAW,EAAE2H,kBAAkB,CAACphB,KAAD;EAAjC,GAAV,CAAhD;EAEAoB,EAAAA,OAAO,CAACtM,WAAR,CAAoB0kB,YAApB;EACApY,EAAAA,OAAO,CAACtM,WAAR,CAAoByzB,MAApB;EACAnnB,EAAAA,OAAO,CAACtM,WAAR,CAAoBwzB,UAApB;EAEAK,EAAAA,kBAAkB,CAACJ,MAAD,EAASvoB,KAAK,CAACshB,IAAN,CAAWlM,QAApB,CAAlB;;EAEA,MAAI,CAACgT,UAAU,CAAC3kB,SAAhB,EAA2B;EACzB,QAAI,kBAAkBpd,MAAlB,IAA4Bm9B,YAAY,KAAK,IAAjD,EAAuD;EACrD,UAAIA,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCyD,QAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,QAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD,OAJD,MAIO,IAAIc,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACD;EACF;EACF;;EAED,QAAMhc,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;EACA,QAAM0lC,aAAa,GAAG3kC,cAAc,CAACoD,WAAf,CAA2B,yBAA3B,CAAtB;EACA,QAAMwhC,cAAc,GAAGR,OAAO,CAACQ,cAAR,IAA0B,CAAjD,CA/DiE;;EAgEjE,QAAMC,sBAAsB,GAAG,CAACF,aAAD,IAAkBlhB,GAAG,GAAGkhB,aAAN,IAAuBC,cAAc,GAAG,EAAjB,GAAsB,EAAtB,GAA2B,EAAnG;;EAEA,MAAIC,sBAAJ,EAA4B;EAC1B,QAAI,CAACxG,QAAQ,EAAb,EAAiB;EACfn9B,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,UAAI,CAACgnB,UAAU,CAAC3kB,SAAhB,EAA2B;EACzBxf,QAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACAqhB,QAAAA,iBAAiB,CAAC3nB,OAAD,CAAjB;EACD;EACF,KAND,MAMO;EACL,YAAM4nB,4BAA4B,GAAI,iBAAiB3iC,MAAlB,IAA6B,CAACpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA9B,IAA0F2nC,YAAY,KAAK,IAAhJ;;EACA,UAAIuB,4BAAJ,EAAkC;EAChC7jC,QAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,YAAI,CAACgnB,UAAU,CAAC3kB,SAAhB,EAA2B;EACzBslB,UAAAA,iBAAiB,CAAC3nB,OAAD,CAAjB;EACAnd,UAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACD;EACF;EACF;EACF;EACF,CApFM;EAsFA,MAAMsgB,cAAc,GAAII,UAAD,IAAgB;EAC5C,MAAIjjC,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,KAA2CopB,YAAY,CAACE,UAAb,KAA4B,SAA3E,EAAsF;EAEtF,QAAM;EAAEqE,IAAAA,cAAc,EAAE;EAAEM,MAAAA,OAAF;EAAWroB,MAAAA;EAAX;EAAlB,MAAyCooB,UAA/C;EAEA,QAAMa,WAAW,GAAGhB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA/C;EACA,QAAMwtC,QAAQ,GAAGjB,2BAA2B,CAAC,KAAD,EAAQ;EAClDvsC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE+U,OAAO,CAACG,IAAR,CAAan5B,IAAb,KAAsB,SAAtB,uCAA+D23B,WAA/D,IAA+EqB,OAAO,CAACG,IAAR,CAAa94B;EAF/C,GAAR,CAA5C,CAN4C;;EAY5C,QAAMy5B,QAAQ,GAAGlB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE,WAAN;EAAmBskB,IAAAA,KAAK,EAAE;EAA1B,GAAR,CAA5C;EACA,QAAMopB,QAAQ,GAAGnB,2BAA2B,CAAC,KAAD,EAAQ;EAClDvsC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE;EAF6C,GAAR,CAA5C;EAIA,QAAM+V,UAAU,GAAGpB,2BAA2B,CAAC,KAAD,EAAQ;EAAEvsC,IAAAA,EAAE,EAAE,aAAN;EAAqB4jB,IAAAA,SAAS,EAAE;EAAhC,GAAR,CAA9C;EAEA6pB,EAAAA,QAAQ,CAACr0B,WAAT,CAAqBs0B,QAArB;EACAD,EAAAA,QAAQ,CAACr0B,WAAT,CAAqBu0B,UAArB;EAEAJ,EAAAA,WAAW,CAACn0B,WAAZ,CAAwBo0B,QAAxB;EACAD,EAAAA,WAAW,CAACn0B,WAAZ,CAAwBq0B,QAAxB;;EACA,MAAId,OAAO,CAACiB,SAAR,CAAkBlG,OAAtB,EAA+B;EAC7B,UAAMmG,OAAO,GAAGtB,2BAA2B,CAAC,KAAD,EAAQ;EACjDvsC,MAAAA,EAAE,EAAE,cAD6C;EAEjD+9B,MAAAA,WAAW,EAAE4O,OAAO,CAACiB,SAAR,CAAkBrmB;EAFkB,KAAR,CAA3C;EAIAgmB,IAAAA,WAAW,CAACn0B,WAAZ,CAAwBy0B,OAAxB;EACD;;EAEDZ,EAAAA,kBAAkB,CAACM,WAAD,EAAcjpB,KAAK,CAACshB,IAAN,CAAWlM,QAAzB,CAAlB,CAhC4C;;EAkC5C,QAAMoE,YAAY,GAAGyO,2BAA2B,CAAC,OAAD,EAAU;EAAExO,IAAAA,WAAW,EAAEwI,iBAAiB,CAACjiB,KAAD;EAAhC,GAAV,CAAhD;EAEA7a,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACAr0B,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bm0B,WAA1B;;EAEA,MAAI,CAACb,UAAU,CAAC3kB,SAAhB,EAA2B;EACzB+lB,IAAAA,qBAAqB,CAACP,WAAD,CAArB;EACD;;EACD,SAAOA,WAAP;EACD,CA3CM;EA6CA,MAAMQ,YAAY,GAAIC,SAAD,IAAe;EACzCxC,EAAAA,YAAY,GAAGwC,SAAf;EACD,CAFM;EAIA,MAAMX,iBAAiB,GAAI3nB,OAAD,IAAa;EAC5C,QAAM2gB,aAAa,GAAG3gB,OAAO,CAAC8V,aAAR,CAAsB,gBAAtB,CAAtB;EACA,QAAM8K,eAAe,GAAG5gB,OAAO,CAAC8V,aAAR,CAAsB,kBAAtB,CAAxB;;EAEA,QAAMyS,aAAa,GAAG;EAAA;;EAAA,kCAAMvoB,OAAO,CAAC3M,UAAd,wDAAM,oBAAoBC,WAApB,CAAgC0M,OAAhC,CAAN;EAAA,GAAtB;;EAEA2gB,EAAAA,aAAa,CAACriB,gBAAd,CAA+B,OAA/B,EAAwC,MAAM;EAC5CiqB,IAAAA,aAAa;EACbxC,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACD,GAJD;EAMAV,EAAAA,eAAe,CAACtiB,gBAAhB,CAAiC,OAAjC,EAA0C,MAAM;EAC9CiqB,IAAAA,aAAa;EACd,GAFD;EAGD,CAfM;EAiBA,MAAMH,qBAAqB,GAAIP,WAAD,IAAiB;EACpD,QAAMC,QAAQ,GAAGD,WAAW,CAAC/R,aAAZ,CAA0B,YAA1B,CAAjB;EACAgS,EAAAA,QAAQ,CAACxpB,gBAAT,CAA0B,OAA1B,EAAmC,MAAM;EACvC,QAAI8jB,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EACxCkG,MAAAA,cAAc,CAACX,WAAD,CAAd;EACD,KAFD,MAEO;EACL9B,MAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,MAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;;EACA,UAAIc,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCuF,QAAAA,WAAW,CAACpkC,MAAZ;EACD;EACF;EACF,GAVD;EAWAqkC,EAAAA,QAAQ,CAACxpB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMmqB,cAAc,CAACZ,WAAD,CAA5D;EACAC,EAAAA,QAAQ,CAACxpB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMoqB,YAAY,CAACb,WAAD,CAA1D;EACAA,EAAAA,WAAW,CAAC/R,aAAZ,CAA0B,cAA1B,EAA0CxX,gBAA1C,CAA2D,OAA3D,EAAoE,MAAMkqB,cAAc,CAACX,WAAD,CAAxF;EACD,CAhBM;EAkBA,MAAMN,kBAAkB,GAAG,CAAChW,OAAD,EAAUyC,QAAV,KAAuB;EACvD30B,EAAAA,MAAM,CAACspC,MAAP,CAAcpX,OAAO,CAAC3S,KAAtB,EAA6B;EAC3BgqB,IAAAA,KAAK,EAAE,MADoB;EAE3BC,IAAAA,SAAS,EAAE;EAFgB,GAA7B;EAKA,QAAMC,SAAS,GAAG;EAChB,iBAAa;EAAEF,MAAAA,KAAK,EAAE;EAAT,KADG;EAEhB,gBAAY;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAFI;EAGhB,oBAAgB;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAHA;EAIhB,mBAAe;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAJC;EAKhBG,IAAAA,MAAM,EAAE;EAAEH,MAAAA,KAAK,EAAE,KAAT;EAAgBC,MAAAA,SAAS,EAAE;EAA3B,KALQ;EAMhBG,IAAAA,GAAG,EAAE;EAAEJ,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C,KANW;EAOhBI,IAAAA,MAAM,EAAE;EAAEL,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C;EAPQ,GAAlB;EAUAxpC,EAAAA,MAAM,CAACspC,MAAP,CAAcpX,OAAO,CAAC3S,KAAtB,EAA6BkqB,SAAS,CAAC9U,QAAD,CAAT,IAAuB8U,SAAS,CAAC,WAAD,CAA7D;EACD,CAjBM;;EAmBP,MAAML,cAAc,GAAIZ,WAAD,IAAiB;EACtC,QAAME,QAAQ,GAAGF,WAAW,CAAC/R,aAAZ,CAA0B,YAA1B,CAAjB;;EACA,MAAIiS,QAAQ,CAACnpB,KAAT,CAAeZ,OAAf,KAA2B,MAA/B,EAAuC;EACrC;EACD;;EACD,QAAMmqB,OAAO,GAAGN,WAAW,CAAC/R,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIqS,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACvpB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;;EAED,QAAM8pB,QAAQ,GAAGD,WAAW,CAAC/R,aAAZ,CAA0B,YAA1B,CAAjB;EACA,QAAMoT,QAAQ,GAAGpB,QAAQ,CAACxf,qBAAT,EAAjB;EACA,MAAI6gB,IAAI,GAAGlkC,MAAM,CAACwqB,UAAP,GAAoB,CAA/B;EACA,MAAI2Z,IAAI,GAAGnkC,MAAM,CAAC0qB,WAAP,GAAqB,CAAhC;EACAkY,EAAAA,WAAW,CAACjpB,KAAZ,CAAkB,gBAAlB,IAAsCsqB,QAAQ,CAACxmC,CAAT,GAAa0mC,IAAb,GAAoB,gBAApB,GAAuC,QAA7E;EACAvB,EAAAA,WAAW,CAACjpB,KAAZ,CAAkB,aAAlB,IAAmCsqB,QAAQ,CAACpZ,CAAT,GAAaqZ,IAAb,GAAoB,UAApB,GAAiC,YAApE;EACD,CAhBD;;EAkBA,MAAMT,YAAY,GAAIb,WAAD,IAAiB;EACpC,QAAMM,OAAO,GAAGN,WAAW,CAAC/R,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIqS,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACvpB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;EACF,CALD;;EAOA,MAAMwqB,cAAc,GAAIX,WAAD,IAAiB;EACtCa,EAAAA,YAAY,CAACb,WAAD,CAAZ;EACA,QAAME,QAAQ,GAAGF,WAAW,CAAC/R,aAAZ,CAA0B,YAA1B,CAAjB;EACAiS,EAAAA,QAAQ,CAACnpB,KAAT,CAAeZ,OAAf,GAAyB+pB,QAAQ,CAACnpB,KAAT,CAAeZ,OAAf,KAA2B,MAA3B,GAAoC,MAApC,GAA6C,MAAtE;EACD,CAJD;;ECrPA,MAAMqrB,GAAG,GAAG,CAAC/oB,GAAD,WAKN;EAAA,MALY;EAChBpW,IAAAA,MADgB;EAEhBC,IAAAA,OAFgB;EAGhBF,IAAAA,OAHgB;EAIhBtJ,IAAAA;EAJgB,GAKZ;EACJ,QAAM2+B,OAAO,GAAGp1B,MAAhB;EACA,QAAMgT,QAAQ,GAAG/S,OAAjB;EACA,QAAM+0B,QAAQ,GAAGj1B,OAAjB;EACA,QAAMq/B,OAAO,GAAG3oC,MAAhB;EACA,MAAI4oC,WAAW,GAAG,CAAlB,CALI;;EAOJ,QAAMC,kBAAkB,GAAI9U,gBAAD,IAAsB;EAC/C,UAAM5f,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMpD,KAAK,GAAGD,QAAQ,EAAtB;;EAEA,UAAMmoC,SAAS,GAAG,CAAC7pC,GAAD,EAAMkV,UAAN,EAAkB40B,mBAAlB,KAA0C;EAC1D,UAAIC,YAAY,GAAG,CAAnB;EACA,UAAIC,UAAU,GAAG,CAAjB;;EACA,UAAIhqC,GAAG,CAACkV,UAAD,CAAH,IAAmB,IAAvB,EAA6B;EAC3B60B,QAAAA,YAAY,GAAG/pC,GAAG,CAACkV,UAAD,CAAlB;EACD;;EACD60B,MAAAA,YAAY;;EACZ,UAAI/pC,GAAG,CAAC6V,EAAJ,IAAU,IAAd,EAAoB;EAClBm0B,QAAAA,UAAU,GAAGhqC,GAAG,CAAC6V,EAAjB;EACD,OATyD;;;EAW1D,UAAIi0B,mBAAmB,GAAG,CAA1B,EAA6B;EAC3BE,QAAAA,UAAU;EACX;;EAEDhqC,MAAAA,GAAG,CAAC6V,EAAJ,GAASm0B,UAAT;EACAhqC,MAAAA,GAAG,CAACkV,UAAD,CAAH,GAAkB60B,YAAlB;EACD,KAjBD;;EAmBA,QAAI9mC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,aAAO8mC,cAAc,CAACnuC,gBAAD,CAArB;EACA,UAAIouC,WAAW,GAAG,EAAlB;EACA,YAAMj2B,OAAO,GAAGF,iBAAiB,EAAjC;;EACA,UAAI+gB,gBAAgB,CAAC1W,OAAjB,CAAyB+rB,YAAzB,KAA0C,CAA1C,IAA+Cl2B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAAnD,EAAiF;EAC/EgqC,QAAAA,WAAW,GAAGj2B,OAAO,CAACyB,EAAtB;EACD,OAFD,MAEO,IAAI,CAACof,gBAAgB,CAAC1W,OAAjB,CAAyB+rB,YAAzB,KAA0C,CAA1C,IAA+CrV,gBAAgB,CAAC1W,OAAjB,CAAyB+rB,YAAzB,KAA0C,CAA1F,KAAgGl2B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAApG,EAAkI;EACvIgqC,QAAAA,WAAW,GAAGj2B,OAAO,CAACC,EAAtB;EACD,OAFM,MAEA;EACLg2B,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAIj2B,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpCgqC,QAAAA,WAAW,CAACh2B,EAAZ,GAAiBD,OAAjB;EACD,OAb4C;;;EAe7C,UAAI6gB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B2tC,GAA1B,IAAiC,IAArC,EAA2C;EACzCtV,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B2tC,GAA1B,GAAgC,CAAhC;EACD,OAjB4C;;;EAoB7C,UAAItV,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B4tC,IAA1B,IAAkC,IAAtC,EAA4C;EAC1CvV,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B4tC,IAA1B,GAAiC,CAAjC;EACD;;EAED,UAAIP,mBAAmB,GAAG,CAAC,CAA3B,CAxB6C;;EAyB7C,UAAIQ,oBAAoB,GAAG,CAAC,CAA5B,CAzB6C;;EA0B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA1B6C;;EA2B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA3B6C;;EA4B7C,UAAIC,eAAe,GAAG,CAAC,CAAvB;EACA,UAAIC,iBAAiB,GAAG,CAAC,CAAzB,CA7B6C;;EA8B7C,UAAIC,sBAAsB,GAAG,CAAC,CAA9B,CA9B6C;;EAgC7C,UAAI7V,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BmuC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3Cd,QAAAA,mBAAmB,GAAG3S,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BmuC,GAA3B,EAAgC,EAAhC,CAA9B;EACD;;EACD,UAAI9V,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BouC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,oBAAoB,GAAGnT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BouC,GAA3B,EAAgC,EAAhC,CAA/B;EACD;;EACD,UAAI/V,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BquC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,kBAAkB,GAAGpT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BquC,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAIhW,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3Cw0B,QAAAA,kBAAkB,GAAGrT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI8e,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3C20B,QAAAA,eAAe,GAAGtT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA3B,EAAgC,EAAhC,CAA1B;EACD;;EACD,UAAIgf,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B2tC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CM,QAAAA,iBAAiB,GAAGvT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B2tC,GAA3B,EAAgC,EAAhC,CAA5B;EACD;;EAED,UAAItV,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B4tC,IAA1B,IAAkC,IAAtC,EAA4C;EAAE;EAC5CM,QAAAA,sBAAsB,GAAGxT,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B4tC,IAA3B,EAAiC,EAAjC,CAAjC;EACD,OArD4C;;;EAuD7C,UAAIp/B,UAAU,GAAGi/B,WAAW,CAAC5sB,QAAQ,CAACe,SAAV,CAA5B;;EACA,UAAIpT,UAAJ,EAAgB;EACd,cAAM8/B,oBAAoB,GAAG9/B,UAAU,CAACiK,UAAD,CAAvC;EACA,cAAM81B,iBAAiB,GAAG//B,UAAU,CAAC4K,EAArC,CAFc;;EAId,YAAIk1B,oBAAoB,KAAK,KAAzB,IAAkC,CAACrlC,GAAG,CAAC8C,kBAA3C,EAA+D;EAC7D,iBAAO,KAAP;EACD;;EAED,YAAIssB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B0tC,YAA1B,KAA2C,CAA/C,EAAkD;EAChD;EACA,cAAIQ,sBAAsB,GAAG,CAAzB,IAA8BK,iBAAiB,IAAIL,sBAAnD,IAA6Eb,mBAAmB,GAAG,CAAvG,EAA0G;EACxG,mBAAO,KAAP;EACD;EACF,SALD,MAKO;EACL;EACA,cAAIY,iBAAiB,GAAG,CAApB,IAAyBM,iBAAiB,IAAIN,iBAA9C,IAAmEZ,mBAAmB,GAAG,CAA7F,EAAgG;EAC9F,mBAAO,KAAP;EACD;EACF,SAlBa;;;EAqBd,YAAIQ,oBAAoB,GAAG,CAAvB,IAA4BS,oBAAoB,IAAIT,oBAAxD,EAA8E;EAC5E,iBAAO,KAAP;EACD;EACF,OAxBD,MAwBO;EACLr/B,QAAAA,UAAU,GAAG,EAAb;EACAi/B,QAAAA,WAAW,CAAC5sB,QAAQ,CAACe,SAAV,CAAX,GAAkCpT,UAAlC;EACD,OAnF4C;;;EAsF7C,UAAI4J,QAAQ,GAAGq1B,WAAW,CAACvoC,KAAD,CAA1B;;EACA,UAAIkT,QAAQ,IAAI,IAAhB,EAAsB;EACpB,cAAMo2B,kBAAkB,GAAGp2B,QAAQ,CAACK,UAAD,CAAnC;EACA,cAAMg2B,eAAe,GAAGr2B,QAAQ,CAACgB,EAAjC,CAFoB;;EAIpB,YAAI40B,eAAe,GAAG,CAAlB,IAAuBS,eAAe,IAAIT,eAA1C,IAA6DX,mBAAmB,GAAG,CAAvF,EAA0F;EACxF,iBAAO,KAAP;EACD,SANmB;;;EAQpB,YAAIS,kBAAkB,GAAG,CAArB,IAA0BU,kBAAkB,IAAIV,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAXD,MAWO;EACL11B,QAAAA,QAAQ,GAAG,EAAX;EACAq1B,QAAAA,WAAW,CAACvoC,KAAD,CAAX,GAAqBkT,QAArB;EACD;;EAED,UAAID,SAAS,GAAGs1B,WAAW,CAAC1tC,MAAD,CAA3B;;EACA,UAAIoY,SAAS,IAAI,IAAjB,EAAuB;EACrB,cAAMu2B,kBAAkB,GAAGv2B,SAAS,CAACM,UAAD,CAApC,CADqB;;EAGrB,YAAIs1B,kBAAkB,GAAG,CAArB,IAA0BW,kBAAkB,IAAIX,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAND,MAMO;EACL51B,QAAAA,SAAS,GAAG,EAAZ;EACAs1B,QAAAA,WAAW,CAAC1tC,MAAD,CAAX,GAAsBoY,SAAtB;EACD;EACF,KAzI8C;;;EA2I/C,UAAMw2B,UAAU,GAAGtW,gBAAgB,CAAC1W,OAApC;;EACA,QAAIgtB,UAAU,CAACC,KAAX,IAAoB,IAApB,IAA4BD,UAAU,CAACC,KAAX,GAAmB,CAAnD,EAAsD;EACpD,YAAMA,KAAK,GAAGD,UAAU,CAACC,KAAzB;EACAD,MAAAA,UAAU,CAACC,KAAX,GAAmB,CAAnB;EACAl4B,MAAAA,UAAU,CAACs2B,GAAD,EAAM4B,KAAK,GAAG,IAAd,EAAoB3qB,GAApB,EAAyB;EACjCpW,QAAAA,MAAM,EAAEo1B,OADyB;EAEjCn1B,QAAAA,OAAO,EAAE+S,QAFwB;EAGjCjT,QAAAA,OAAO,EAAEi1B,QAHwB;EAIjCv+B,QAAAA,MAAM,EAAE2oC;EAJyB,OAAzB,CAAV;EAMA,aAAO,KAAP;EACD;;EAEDG,IAAAA,SAAS,CAAC5+B,UAAD,EAAaiK,UAAb,EAAyB40B,mBAAzB,CAAT;EACAD,IAAAA,SAAS,CAACh1B,QAAD,EAAWK,UAAX,EAAuB40B,mBAAvB,CAAT;EACAD,IAAAA,SAAS,CAACj1B,SAAD,EAAYM,UAAZ,EAAwB40B,mBAAxB,CAAT;EAEA,QAAIwB,OAAO,GAAG,IAAd;;EACA,QAAIxW,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0B0tC,YAA1B,KAA2C,CAA/C,EAAkD;EAChDmB,MAAAA,OAAO,GAAG,IAAV;EACD,KA/J8C;;;EAiK/C,UAAMC,UAAU,GAAG,EAAnB;EACAA,IAAAA,UAAU,CAACjuB,QAAQ,CAACe,SAAV,CAAV,GAAiCpT,UAAjC;EACAsgC,IAAAA,UAAU,CAAC5pC,KAAD,CAAV,GAAoBkT,QAApB;EACA02B,IAAAA,UAAU,CAAC/uC,MAAD,CAAV,GAAqBoY,SAArB;EACAT,IAAAA,kBAAkB,CAAC;EAAE,OAACm3B,OAAD,GAAWC;EAAb,KAAD,CAAlB;EACD,GAtKD;;EAwKA,QAAMC,aAAa,GAAG,CAAC1R,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CsmB,QAA/C,KAA4D;EAChFJ,IAAAA,mBAAmB,CAACvK,gBAAD,EAAmBwK,QAAnB,CAAnB;EACAC,IAAAA,eAAe,CAACzF,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CsmB,QAA/C,EAAyDC,OAAzD,EAAkEpiB,QAAlE,CAAf;EACD,GAHD;;EAKA,QAAMmuB,oBAAoB,GAAI3W,gBAAD,IAAsB;EACjD,UAAM3b,KAAK,GAAG,kBAAd;;EACA,QAAIywB,kBAAkB,CAAC9U,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EACD,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACAwY,MAAAA,OAAO,CAAC9tB,MAAR;EACD,KARgD;;;EAUjD,QAAIM,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAlC,IAA0ChV,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA1F,EAAgG;EAC9F;EACD;;EACD,UAAMsyB,MAAM,GAAGvnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAs8B,IAAAA,MAAM,CAAChxC,EAAP,GAAYye,KAAZ;EACAhV,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B43B,MAA1B;;EACA,QAAIpc,cAAc,CAAClmB,GAAf,CAAmB,wBAAnB,MAAiDxI,SAArD,EAAgE;EAC9D0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,wBAAtB,EAAgDpS,mBAAhD;EACD;;EACD,WAAO+iB,oBAAoB,CAACpL,gBAAD,EAAmBxX,QAAnB,CAA3B;EACD,GApBD;;EAsBA,QAAMquB,kBAAkB,GAAIz2B,UAAD,IAAgB;EACzC,UAAM02B,UAAU,GAAGznC,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgDjV,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,CAAnE;;EACA,QAAIwyB,UAAJ,EAAgB;EACd,YAAMC,cAAc,GAAGD,UAAU,CAAC1N,eAAX,IAA8B0N,UAAU,CAACE,aAAX,CAAyB3nC,QAA9E;EACA,aAAO0nC,cAAc,CAAC1X,eAAf,CAA+B7V,SAA/B,CAAyClQ,QAAzC,CAAkD8G,UAAlD,CAAP;EACD;;EACD,WAAO,KAAP;EACD,GAPD;;EASA,QAAM62B,cAAc,GAAG,CAACjX,gBAAD,EAAmBkX,YAAnB,KAAoC;EACzD,UAAM92B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMqmC,UAAU,GAAGtW,gBAAgB,CAAC1W,OAApC;;EAEA,QAAIgtB,UAAU,CAACa,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7B,aAAOC,cAAc,CAACtrC,SAAD,EAAYk0B,gBAAZ,CAArB;EACD;;EACD,QAAIsW,UAAU,CAACa,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7BR,MAAAA,oBAAoB,CAAC3W,gBAAD,CAApB;EACA;EACD;;EAED,QAAI8U,kBAAkB,CAAC9U,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,UAAM3b,KAAK,GAAG,cAAciyB,UAAU,CAACa,MAAvC;EACA,UAAME,YAAY,GAAG,qBAAqBf,UAAU,CAACa,MAArD;;EAEA,QAAIvmC,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACA,YAAMizB,cAAc,GAAGjoC,QAAQ,CAACiV,cAAT,CAAwB+yB,YAAxB,CAAvB;;EACA,UAAIxa,OAAJ,EAAa;EACXA,QAAAA,OAAO,CAAC9tB,MAAR;EACD;;EACD,UAAIuoC,cAAJ,EAAoB;EAClBA,QAAAA,cAAc,CAACvoC,MAAf;EACD;EACF;;EACD,QAAI8nC,kBAAkB,CAACz2B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI/Q,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAtC,EAA4C;EAC1C;EACD;;EAEDzT,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiCiE,KAAjC;EACA,UAAMkzB,QAAQ,GAAGjB,UAAU,CAACa,MAAX,KAAsB,CAAvC;;EACA,QAAID,YAAJ,EAAkB;EAChB,YAAMM,UAAU,GAAGnoC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAk9B,MAAAA,UAAU,CAAC5xC,EAAX,GAAgByxC,YAAhB;EACA,YAAMI,OAAO,GAAGzX,gBAAgB,CAAC1W,OAAjB,CAAyBmuB,OAAzB,IAAoC,GAApD;EACA,YAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,MAAAA,UAAU,CAAC34B,YAAX,CAAwB,OAAxB,8GAAsI64B,SAAtI;EACAroC,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bw4B,UAA1B;EACD;;EACD,UAAMZ,MAAM,GAAGvnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAs8B,IAAAA,MAAM,CAAChxC,EAAP,GAAYye,KAAZ;EACA,UAAMszB,UAAU,GAAGpnC,MAAM,CAAC0qB,WAA1B;EACA,UAAM2c,SAAS,GAAGrnC,MAAM,CAACwqB,UAAzB;EACA,QAAI8c,MAAM,GAAG,KAAb;;EACA,QAAI,CAACN,QAAL,EAAe;EACb,YAAMO,YAAY,GAAGH,UAAU,GAAG,CAAb,GAAiB,GAAtC;EACA,UAAII,aAAa,GAAG,EAApB;EACA,UAAIpkB,KAAK,GAAGikB,SAAS,GAAG,CAAZ,GAAgB,GAA5B;EACA,UAAII,cAAc,GAAGD,aAAa,GAAGD,YAArC;EACA,UAAIvtB,KAAK,GAAGqtB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAAnC;EACA,UAAIK,UAAU,GAAG,YAAjB,CANa;;EAQb,UAAI,CAAC,UAAUtsC,IAAV,CAAewiB,SAAS,CAACme,SAAzB,KAAwC,QAAQ3gC,IAAR,CAAawiB,SAAS,CAACme,SAAvB,CAAzC,KAAgF,QAAQ3gC,IAAR,CAAawiB,SAAS,CAACme,SAAvB,MAAsC,KAA1H,EAAiI;EAC/H/hB,QAAAA,KAAK,GAAGqtB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACAjkB,QAAAA,KAAK,GAAGikB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb,CAJ+H;EAMhI,OAND,MAMO,IAAI,kBAAkB1nC,MAAlB,IAA6B,UAAU5E,IAAV,CAAewiB,SAAS,CAACme,SAAzB,CAAjC,EAAuE;EAC5E/hB,QAAAA,KAAK,GAAGqtB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACAjkB,QAAAA,KAAK,GAAGikB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb;EACD,OAnBY;;;EAqBb,UAAI3B,UAAU,CAAC4B,KAAX,IAAoB,IAAxB,EAA8B;EAC5BL,QAAAA,MAAM,GAAG,IAAT;EACAjB,QAAAA,MAAM,CAAC/3B,YAAP,CAAoB,OAApB,EAA6B,2CAA2Cm5B,cAA3C,GAA4D,sBAA5D,GAAqFztB,KAArF,GAA6F,sBAA7F,GAAsHoJ,KAAtH,GAA8H,kDAA3J;EACD,OAHD,MAGO;EACLijB,QAAAA,MAAM,CAAC/3B,YAAP,CAAoB,OAApB,EAA6Bo5B,UAAU,GAAG3B,UAAU,CAAC6B,WAArD;EACD;EACF,KA3BD,MA2BO;EACLvB,MAAAA,MAAM,CAAC/3B,YAAP,CAAoB,OAApB,EAA6By3B,UAAU,CAAC6B,WAAxC;EACD;;EACD9oC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B43B,MAA1B;EACA,UAAM7N,MAAM,GAAG15B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EAEA,UAAM0xB,YAAY,GAAGsK,UAAU,CAAC8B,EAAX,KAAkB,KAAlB,GAA0B,GAA1B,GAAgC,GAArD;EAEArP,IAAAA,MAAM,CAACsP,WAAP,GAAqB,KAArB;EACAtP,IAAAA,MAAM,CAACuP,YAAP,GAAsB,KAAtB;EACAvP,IAAAA,MAAM,CAACwP,WAAP,GAAqB,KAArB;EACAxP,IAAAA,MAAM,CAACyP,SAAP,GAAmB,IAAnB;EACAzP,IAAAA,MAAM,CAACnjC,EAAP,GAAY,YAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIyT,UAAU,GAAG,EAAjB;;EACA,QAAIzT,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCyT,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAInC,UAAU,CAACpO,OAAX,IAAsBoO,UAAU,CAAC,eAAD,CAApC,EAAuD;EACrDvN,MAAAA,MAAM,CAACE,OAAP,GAAiB,2DAAjB;EACD;;EAED,QAAIre,IAAJ,CAnGyD;;EAqGzD,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,+DAHU,GAGwD8tB,UAHxD,GAGqE,GAHrE,GAIV,yCAJU,GAKV,+GALU,GAMV,8GANU,GAOV,2BAPU,GAQV,gEARU,GAQyDzM,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,yBAZU,GAaV,qEAbU,GAcV,UAdF;EAgBA,UAAI0M,OAAJ,EAAaplB,SAAb,EAAwBqlB,KAAxB,EAA+BC,MAA/B,EAAuCC,OAAvC;;EACA,UAAI7Y,gBAAgB,CAAC1W,OAAjB,CAAyBwvB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACAplB,QAAAA,SAAS,GAAG,SAAZ;EACAqlB,QAAAA,KAAK,GAAG,SAAR;EACAC,QAAAA,MAAM,GAAG,SAAT;EACAC,QAAAA,OAAO,GAAG,SAAV;EACD,OAND,MAMO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACAplB,QAAAA,SAAS,GAAG,SAAZ;EACAslB,QAAAA,MAAM,GAAG,SAAT;EACAD,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMlJ,SAAS,GAAG3P,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqsB,eAAe,GAAG/Y,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAIosB,OAAO,GAAG,EAAd;;EACA,UAAIhZ,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6sB,QAAAA,OAAO,GAAG,+CAA+CJ,MAA/C,GAAwD,cAAxD,GAAyE5Y,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAArG,GAAgH,gCAA1H;EACD;;EACD,YAAM8sB,UAAU,GAAG,iCAAiC74B,UAAjC,GAA8C,IAA9C,GAAqDiE,KAArD,GAA6D,KAAhF;EACA,YAAMqI,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EolB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,oDAHY;EAKZ,YALY,GAKHG,OALG,GAKO,kCALP,GAMZ,wCANY,GAM+B1lB,SAN/B,GAM2C,IAN3C,GAMkDqc,SANlD,GAM8D,QAN5E;EAOA,YAAMpc,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DylB,eAA7D,GAA+E,+BAA5F;EACAnuB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EAEDwV,IAAAA,MAAM,CAAClqB,YAAP,CAAoB,OAApB,EAA6B,kHAA7B;EACA+3B,IAAAA,MAAM,CAAC53B,WAAP,CAAmB+pB,MAAnB,EA3JyD;;EA8JzD,UAAMmQ,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9pC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsW,aAAvB;;EAEA,QAAI5C,UAAU,CAAC,eAAD,CAAd,EAAiC;EAC/B1rB,MAAAA,IAAI,GAAGmf,0BAA0B,CAAC/J,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDme,IAAAA,MAAM,CAACC,MAAP,GAAgBpe,IAAhB;;EAEA,UAAMwuB,kBAAkB,GAAG,MAAM;EAC/B;EACArB,MAAAA,aAAa,GAAG1oC,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC8kB,eAAtC,CAAsD9kB,cAAtD,CAAqE,YAArE,EAAmF+0B,YAAnG;;EACA,UAAI/C,UAAU,CAAC,eAAD,CAAV,KAAgC,IAAhC,IAAwC,CAACiB,QAA7C,EAAuD;EACrDQ,QAAAA,aAAa,IAAI,EAAjB;EACD;;EACD1oC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC8kB,eAAtC,CAAsD7V,IAAtD,CAA2DrJ,KAA3D,CAAiEovB,MAAjE,GAA0E,KAA1E;EACAjqC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC4F,KAAtC,CAA4CgB,MAA5C,GAAqD6sB,aAAa,GAAG,IAArE;EACD,KARD;;EAUA,UAAM1L,EAAE,GAAGle,SAAS,CAACme,SAAV,CAAoBhmB,WAApB,EAAX;;EACA,QAAI+lB,EAAE,CAACh8B,OAAH,CAAW,QAAX,MAAyB,CAAC,CAA9B,EAAiC;EAC/B,UAAIg8B,EAAE,CAACh8B,OAAH,CAAW,QAAX,IAAuB,CAAC,CAA5B,EAA+B;EAC7B04B,QAAAA,MAAM,CAAClJ,MAAP,GAAgB,MAAM;EACpBuZ,UAAAA,kBAAkB;EAClB,gBAAM1O,UAAU,GAAGr7B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC8kB,eAAtC,CAAsD9kB,cAAtD,CAAqE,YAArE,CAAnB;EACAoyB,UAAAA,aAAa,CAAC1R,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CwzB,MAA/C,CAAb;EACD,SAJD;EAKD,OAND,MAMO;EACL,YAAI0B,KAAK,GAAGxQ,MAAM,CAACK,eAAP,IAA0BL,MAAM,CAACiO,aAA7C;EACA,YAAIuC,KAAK,CAAClqC,QAAV,EAAoBkqC,KAAK,GAAGA,KAAK,CAAClqC,QAAd,CAFf;;EAIL,cAAMmqC,MAAM,GAAG5f,WAAW,CAAC,MAAM;EAC/B,cAAI2f,KAAK,CAAChf,UAAN,KAAqB,UAAzB,EAAqC;EACnCV,YAAAA,aAAa,CAAC2f,MAAD,CAAb,CADmC;;EAGnCJ,YAAAA,kBAAkB;EAClB,kBAAM1O,UAAU,GAAGr7B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC8kB,eAAtC,CAAsD9kB,cAAtD,CAAqE,YAArE,CAAnB;EACAoyB,YAAAA,aAAa,CAAC1R,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CwzB,MAA/C,CAAb;EACD;EACF,SARyB,EAQvB,GARuB,CAA1B;EASD;EACF,KArBD,MAqBO;EACL9O,MAAAA,MAAM,CAAClJ,MAAP,GAAgB,MAAM;EACpB;EACAuZ,QAAAA,kBAAkB;EAClB,cAAM1O,UAAU,GAAGr7B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC8kB,eAAtC,CAAsD9kB,cAAtD,CAAqE,YAArE,CAAnB;EACAoyB,QAAAA,aAAa,CAAC1R,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwCrmB,KAAxC,EAA+CwzB,MAA/C,CAAb;EACD,OALD;EAMD;EACF,GA9MD;;EA+MA,QAAM4B,wBAAwB,GAAIzZ,gBAAD,IAAsB;EACrDiX,IAAAA,cAAc,CAACjX,gBAAD,EAAmB,KAAnB,CAAd;EACD,GAFD;;EAIA,MAAI0Z,eAAe,GAAG,KAAtB;;EAEA,QAAMC,sBAAsB,GAAI3Z,gBAAD,IAAsB;EACnD,QAAIgF,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAvC;EACA,UAAMsR,UAAU,GAAGtW,gBAAgB,CAAC1W,OAApC,CAFmD;;EAKnD,QAAI/Y,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,sBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBs7B,oBAAxB,KAAiD,WAD/C,IAEF,OAAOrpC,MAAM,CAAC+N,SAAP,CAAiBs7B,oBAAxB,KAAiD,UAFnD,EAE+D;EAC7D,YAAMA,oBAAoB,GAAGrpC,MAAM,CAAC+N,SAAP,CAAiBs7B,oBAA9C;;EAEA,UAAI,CAACF,eAAL,EAAsB;EACpB,cAAMnX,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,YAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD;;EAEDxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,GAA4C,MAAM;EAChD,cAAI0H,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,kBAAM6E,MAAM,GAAG7J,gBAAgB,CAAC1W,OAAjB,CAAyBugB,MAAxC;EACA7E,YAAAA,OAAO,IAAI+F,eAAe,CAACH,OAAD,EAAUpiB,QAAV,CAA1B,CAFqC;;EAKrC,gBAAIqhB,MAAM,IAAI,IAAd,EAAoB;EAClB;EACAxsB,cAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACA4E,cAAAA,gBAAgB,CAACC,MAAD,EAAS7J,gBAAT,CAAhB;EACA;EACD,aAVoC;;;EAYrC,gBAAIA,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;EACD,aAFD,MAEO;EACLz0B,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF,SAnBD;;EAoBAz0B,QAAAA,MAAM,CAAC+N,SAAP,CAAiBu7B,uBAAjB,GAA2C,MAAM;EAC/CtP,UAAAA,mBAAmB,CAACvK,gBAAD,CAAnB;EACD,SAFD;;EAGA4Z,QAAAA,oBAAoB,CAACrX,MAAD,CAApB;EACAmX,QAAAA,eAAe,GAAG,IAAlB;EACD;EACF,KA1CD,MA0CO;EACLnpC,MAAAA,MAAM,CAAC+N,SAAP,CAAiBw7B,kBAAjB,GAAsC9Z,gBAAgB,CAAC9W,OAAvD;;EAEA,UAAIotB,UAAU,CAACyD,eAAf,EAAgC;EAC9B,YAAIzD,UAAU,CAACyD,eAAX,CAA2BC,QAA/B,EAAyC;EACvCC,UAAAA,mBAAmB,CAACja,gBAAD,CAAnB;EACD;;EACD,YAAIsW,UAAU,CAACyD,eAAX,CAA2BG,MAA/B,EAAuC;EACrCC,UAAAA,eAAe,CAACna,gBAAD,CAAf;EACD;;EACD,YAAIsW,UAAU,CAACyD,eAAX,CAA2B7C,YAA/B,EAA6C;EAC3CkD,UAAAA,aAAa,GAAGpa,gBAAhB;EACAzvB,UAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB8mB,YAArB,GAAoCjD,cAApC;EACD,SAV6B;;;EAY9B,cAAMb,KAAK,GAAGD,UAAU,CAACC,KAAX,IAAoBD,UAAU,CAACyD,eAAX,CAA2BO,eAA7D;;EACA,YAAI/D,KAAK,IAAI,IAAT,IAAiBA,KAAK,GAAG,CAA7B,EAAgC;EAC9Bl4B,UAAAA,UAAU,CAAC,MAAM;EACfo7B,YAAAA,wBAAwB,CAACzZ,gBAAD,CAAxB;EACD,WAFS,EAEPuW,KAAK,GAAG,IAFD,CAAV;EAGD;EACF,OAlBD,MAkBO;EACLkD,QAAAA,wBAAwB,CAACzZ,gBAAD,CAAxB;EACD;;EAED,UAAIzvB,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,gBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBi8B,cAAxB,KAA2C,WADzC,IAEF,OAAOhqC,MAAM,CAAC+N,SAAP,CAAiBi8B,cAAjB,CAAgCva,gBAAgB,CAAC9W,OAAjD,CAAP,KAAqE,UAFvE,EAEmF;EACjF,cAAMsxB,aAAa,GAAGjqC,MAAM,CAAC+N,SAAP,CAAiBi8B,cAAjB,CAAgCva,gBAAgB,CAAC9W,OAAjD,CAAtB;EAEA,cAAMqZ,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EAEA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EAED,YAAIuX,OAAO,GAAG,EAAd;;EACA,aAAK,IAAI8Z,aAAT,IAA0Bza,gBAA1B,EAA4C;EAC1C;EACA,cAAIya,aAAa,CAAC5pB,UAAd,CAAyBjoB,WAAzB,KAAyC6xC,aAAa,KAAK5xC,OAA/D,EAAwE;EACtE,kBAAM6xC,QAAQ,GAAG;EAAE,eAACD,aAAD,GAAiBza,gBAAgB,CAACya,aAAD;EAAnC,aAAjB;EACA9Z,YAAAA,OAAO,CAACtsB,IAAR,CAAaqmC,QAAb;EACD;EACF;;EAED,YAAI/Z,OAAO,CAACr0B,MAAR,GAAiB,CAArB,EAAwB;EACtBi2B,UAAAA,MAAM,CAAC5B,OAAP,GAAiBA,OAAjB;EACD;;EACD,YAAIX,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD,SAzBgF;;;EA4BjFxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBq8B,6BAAjB,GAAkDC,gBAAD,IAAsB;EACrE,cAAI,CAACA,gBAAD,IAAqB,CAACA,gBAAgB,CAAC3xB,KAA3C,EAAkD;EAAE;EAAQ;;EAE5D,gBAAMygB,SAAS,GAAG,EAAlB;EACAA,UAAAA,SAAS,CAACnwB,IAAV,GAAiB,OAAjB;EACAmwB,UAAAA,SAAS,CAAC5wB,OAAV,GAAoB/P,oBAApB;EACA2gC,UAAAA,SAAS,CAACjwB,OAAV,GAAoB;EAAE,aAAC5Q,OAAD,GAAW+xC,gBAAgB,CAAC3xB;EAA9B,WAApB;;EACA,cAAI+W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BsgB,YAAAA,SAAS,CAACjwB,OAAV,GAAoB,EAAE,GAAGiwB,SAAS,CAACjwB,OAAf;EAAwB2P,cAAAA,UAAU,EAAEwxB,gBAAgB,CAACzxB;EAArD,aAApB;EACD,WAToE;;;EAYrE,cAAIyxB,gBAAgB,CAACja,OAArB,EAA8B;EAC5B,iBAAK,IAAIka,aAAT,IAA0BD,gBAAgB,CAACja,OAA3C,EAAoD;EAClD+I,cAAAA,SAAS,CAACjwB,OAAV,GAAoB,EAAE,GAAGiwB,SAAS,CAACjwB,OAAf;EAAwB,mBAAGohC;EAA3B,eAApB;EACD;EACF;;EAEDrQ,UAAAA,QAAQ,CAAC9wB,YAAT,CAAsBgwB,SAAtB;EACD,SAnBD;;EAoBA8Q,QAAAA,aAAa,CAACjY,MAAD,CAAb;EACD;EACF;EACF,GA7HD;;EA+HA,QAAM0X,mBAAmB,GAAIa,WAAD,IAAiB;EAC3C,UAAMC,mBAAmB,GAAGD,WAAW,CAACxxB,OAAZ,CAAoBywB,eAApB,CAAoCC,QAApC,GAA+C,IAA3E,CAD2C;;EAE3C,QAAIgB,SAAJ;EACA,UAAMC,MAAM,GAAG,CAAC,WAAD,EAAc,UAAd,EAA0B,QAA1B,EAAoC,WAApC,EAAiD,WAAjD,EAA8D,OAA9D,CAAf;;EACA,UAAMC,cAAc,GAAG,MAAM;EAC3BnU,MAAAA,YAAY,CAACiU,SAAD,CAAZ;EACAA,MAAAA,SAAS,GAAG38B,UAAU,CAAC,MAAM;EAC3Bo7B,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAK,QAAAA,oBAAoB;EACrB,OAHqB,EAGnBJ,mBAHmB,CAAtB;EAID,KAND;;EAOA,UAAMK,YAAY,GAAG,MAAM;EACzBF,MAAAA,cAAc;EACf,KAFD;;EAGA,UAAM5gB,mBAAmB,GAAG,MAAM;EAChC2gB,MAAAA,MAAM,CAACr7B,OAAP,CAAey7B,SAAS,IAAI9qC,MAAM,CAACqZ,gBAAP,CAAwByxB,SAAxB,EAAmCD,YAAnC,EAAiD;EAAEE,QAAAA,OAAO,EAAE;EAAX,OAAjD,CAA5B;EACD,KAFD;;EAGA,UAAMH,oBAAoB,GAAG,MAAM;EACjCF,MAAAA,MAAM,CAACr7B,OAAP,CAAey7B,SAAS,IAAI9qC,MAAM,CAAC8hB,mBAAP,CAA2BgpB,SAA3B,EAAsCD,YAAtC,CAA5B;EACD,KAFD;;EAGA9gB,IAAAA,mBAAmB;EACnB4gB,IAAAA,cAAc;EACd,WAAOC,oBAAP,CAtB2C;EAuB5C,GAvBD;;EAyBA,QAAMhB,eAAe,GAAIW,WAAD,IAAiB;EACvC,UAAMS,yBAAyB,GAAG,MAAM;EACtC,YAAM;EAAElC,QAAAA,YAAF;EAAgB3hB,QAAAA,YAAhB;EAA8BjC,QAAAA;EAA9B,UAA4CpmB,QAAQ,CAACgwB,eAA3D;EACA,aAAQ5J,SAAS,IAAI4jB,YAAY,GAAG3hB,YAAnB,CAAV,GAA8C,GAArD;EACD,KAHD;;EAIA,UAAM8jB,cAAc,GAAG,MAAM;EAC3B,YAAMC,gBAAgB,GAAGF,yBAAyB,EAAlD;;EACA,UAAIE,gBAAgB,IAAIX,WAAW,CAACxxB,OAAZ,CAAoBywB,eAApB,CAAoCG,MAA5D,EAAoE;EAClET,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAvqC,QAAAA,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCqpB,uBAArC;EACD;EACF,KAND;;EAOA,UAAMC,QAAQ,GAAG,CAAC7R,IAAD,EAAO8R,KAAP,KAAiB;EAChC,UAAIC,UAAU,GAAG,KAAjB;EACA,aAAO,YAAmB;EACxB,cAAMC,OAAO,GAAG,IAAhB;;EACA,YAAI,CAACD,UAAL,EAAiB;EAAA,4CAFCE,IAED;EAFCA,YAAAA,IAED;EAAA;;EACfjS,UAAAA,IAAI,CAACkS,KAAL,CAAWF,OAAX,EAAoBC,IAApB;EACAF,UAAAA,UAAU,GAAG,IAAb;EACAx9B,UAAAA,UAAU,CAAC,MAAM;EACfw9B,YAAAA,UAAU,GAAG,KAAb;EACD,WAFS,EAEPD,KAFO,CAAV;EAGD;EACF,OATD;EAUD,KAZD;;EAaA,UAAMF,uBAAuB,GAAGC,QAAQ,CAACH,cAAD,EAAiB,GAAjB,CAAxC;EACAjrC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC8xB,uBAAlC,EAA2D;EAAEJ,MAAAA,OAAO,EAAE;EAAX,KAA3D;EACA,WAAO,MAAM/qC,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCqpB,uBAArC,CAAb,CA3BuC;EA4BxC,GA5BD;;EA8BA,MAAItB,aAAJ;;EACA,QAAMhD,cAAc,GAAG,CAAC9Y,KAAD,EAAQ2d,SAAR,KAAsB;EAC3C,QAAI,CAAA3d,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAE4d,OAAP,IAAiB,CAArB,EAAwB;EACxB,UAAMlc,gBAAgB,GAAGic,SAAS,IAAI7B,aAAtC;EAEA,UAAMh6B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMknC,MAAM,GAAGnX,gBAAgB,CAAC1W,OAAjB,CAAyB6tB,MAAxC;EACA,QAAIN,kBAAkB,CAACz2B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI4f,gBAAgB,CAAC1W,OAAjB,CAAyB+rB,YAAzB,KAA0C,CAA1C,KAAgD8B,MAAM,KAAK,CAAX,IAAgBA,MAAM,KAAK,CAA3B,IAAgCA,MAAM,KAAK,CAA3F,CAAJ,EAAmG;EACjGF,MAAAA,cAAc,CAACjX,gBAAD,EAAmB,IAAnB,CAAd;EACA;EACD;;EACD,QAAI8U,kBAAkB,CAAC9U,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BssB,gBAAgB,CAAC1W,OAAjB,CAAyB+rB,YAAzB,KAA0C,CAAxE,EAA2E;EACzE,YAAM8G,aAAa,GAAG9sC,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;EACA,YAAM83B,gBAAgB,GAAG/sC,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,CAAzB;;EACA,UAAI63B,aAAa,IAAIC,gBAArB,EAAuC;EACrCD,QAAAA,aAAa,CAACptC,MAAd;EACAqtC,QAAAA,gBAAgB,CAACrtC,MAAjB;EACD;EACF,KAvB0C;;;EA0B3C,QAAIM,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA5C,IAAoDjV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAvG,EAA6G;EAC3G;EACD,KA5B0C;;;EA8B3C,QAAI0b,gBAAgB,CAAC1W,OAAjB,CAAyB6tB,MAAzB,IAAmC,IAAnC,KACA,UAAUxrC,IAAV,CAAewiB,SAAS,CAACme,SAAzB,CAAD,IAA0C,QAAQ3gC,IAAR,CAAawiB,SAAS,CAACme,SAAvB,CAA1C,IAAiF,QAAQ3gC,IAAR,CAAawiB,SAAS,CAACme,SAAvB,CAAjF,IACE,kBAAkB/7B,MADpB,IACgC,UAAU5E,IAAV,CAAewiB,SAAS,CAACme,SAAzB,CAF/B,CAAJ,EAE0E;EACxE;EACD;;EAED17B,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiC,eAAjC;EACA,QAAIy3B,MAAM,GAAG,KAAb;EACA,UAAML,UAAU,GAAGnoC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAk9B,IAAAA,UAAU,CAAC5xC,EAAX,GAAgB,kBAAhB;EACA,UAAM6xC,OAAO,GAAGzX,gBAAgB,CAAC1W,OAAjB,CAAyBmuB,OAAzB,IAAoC,GAApD;EACA,UAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,IAAAA,UAAU,CAAC34B,YAAX,CAAwB,OAAxB,8GAAsI64B,SAAtI;EACAroC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bw4B,UAA1B;EAEA,UAAMZ,MAAM,GAAGvnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAs8B,IAAAA,MAAM,CAAChxC,EAAP,GAAY,eAAZ;;EAEA,QAAIo6B,gBAAgB,CAAC1W,OAAjB,CAAyB4uB,KAAzB,IAAkC,IAAtC,EAA4C;EAC1CL,MAAAA,MAAM,GAAG,IAAT;EACAjB,MAAAA,MAAM,CAAC/3B,YAAP,CAAoB,OAApB,EAA6B,4LAA7B;EACD,KAHD,MAGO;EACL+3B,MAAAA,MAAM,CAAC/3B,YAAP,CAAoB,OAApB,EAA6BmhB,gBAAgB,CAAC1W,OAAjB,CAAyB6uB,WAAtD;EACD;;EACD9oC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B43B,MAA1B;EACA,UAAM7N,MAAM,GAAG15B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EACA,UAAM0xB,YAAY,GAAGhM,gBAAgB,CAAC1W,OAAjB,CAAyB8uB,EAAzB,KAAgC,KAAhC,GAAwC,GAAxC,GAA8C,GAAnE;EACArP,IAAAA,MAAM,CAACsP,WAAP,GAAqB,KAArB;EACAtP,IAAAA,MAAM,CAACuP,YAAP,GAAsB,KAAtB;EACAvP,IAAAA,MAAM,CAACwP,WAAP,GAAqB,KAArB;EACAxP,IAAAA,MAAM,CAACyP,SAAP,GAAmB,IAAnB;EACAzP,IAAAA,MAAM,CAACnjC,EAAP,GAAY,mBAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIyT,UAAU,GAAG,EAAjB;;EACA,QAAIzT,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCyT,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIzY,gBAAgB,CAAC1W,OAAjB,CAAyB4e,OAAzB,IAAoClI,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAxC,EAAmF;EACjFyf,MAAAA,MAAM,CAACE,OAAP,GAAiB,2DAAjB;EACD;;EACD,QAAIre,IAAJ,CAtE2C;;EAwE3C,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,wEAHU,GAGiE8tB,UAHjE,GAG8E,GAH9E,GAIV,yCAJU,GAKV,4GALU,GAMV,wJANU,GAOV,2BAPU,GAQV,gEARU,GAQyDzM,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,wCAZU,GAaV,qRAbU,GAcV,UAdF;EAgBA,UAAI0M,OAAJ,EAAaplB,SAAb,EAAwBqlB,KAAxB,EAA+BE,OAA/B;;EACA,UAAI7Y,gBAAgB,CAAC1W,OAAjB,CAAyBwvB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACAplB,QAAAA,SAAS,GAAG,SAAZ;EACAqlB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD,OALD,MAKO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACAplB,QAAAA,SAAS,GAAG,SAAZ;EACAqlB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMlJ,SAAS,GAAG3P,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqsB,eAAe,GAAG/Y,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAIyvB,OAAO,GAAG,EAAd;;EACA,UAAIrc,gBAAgB,CAACtV,UAAjB,CAA4B2xB,OAA5B,IAAuC,IAAvC,IAA+Crc,gBAAgB,CAACtV,UAAjB,CAA4B2xB,OAA5B,KAAwC,EAA3F,EAA+F;EAC7FA,QAAAA,OAAO,GAAG,qCAAqCrc,gBAAgB,CAACtV,UAAjB,CAA4B2xB,OAAjE,GAA2E,YAArF;EACD;;EAED,UAAIrD,OAAO,GAAG,EAAd;;EACA,UAAIhZ,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6sB,QAAAA,OAAO,GAAG,8CAA8ChZ,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA1E,GAAqF,oBAArF,GAA4GwjB,SAA5G,GAAwH,WAAlI;EACD;;EACD,YAAMsJ,UAAU,GAAG,iCAAiC74B,UAAjC,GAA8C,oBAAjE;EACA,YAAMsM,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EolB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,wCAHY,GAG+BvlB,SAH/B,GAG2C,IAH3C,GAGkDqc,SAHlD,GAG8D,QAH5E;EAIA,YAAMpc,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DylB,eAA7D,GAA+E,QAA/E,GAA0FC,OAA1F,GAAoGqD,OAApG,GACX,cADF;EAEAzxB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EACDwV,IAAAA,MAAM,CAAClqB,YAAP,CAAoB,OAApB,EAA6B,yLAA7B;EACA+3B,IAAAA,MAAM,CAAC53B,WAAP,CAAmB+pB,MAAnB,EA9H2C;;EAiI3C,UAAMmQ,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9pC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsW,aAAvB;;EAEA,QAAIlZ,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAJ,EAA+C;EAC7CsB,MAAAA,IAAI,GAAGmf,0BAA0B,CAAC/J,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDme,IAAAA,MAAM,CAACC,MAAP,GAAgBpe,IAAhB;;EAEAme,IAAAA,MAAM,CAAClJ,MAAP,GAAgB,MAAM;EACpB,YAAM6K,UAAU,GAAGr7B,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6C8kB,eAA7C,CAA6D9kB,cAA7D,CAA4E,YAA5E,CAAnB;EACAoyB,MAAAA,aAAa,CAAC1R,OAAD,EAAUhF,gBAAV,EAA4B0K,UAA5B,EAAwC,eAAxC,EAAyDmN,MAAzD,CAAb;EACD,KAHD;EAID,GA7ID;;EA+IA,MAAI,CAACxoC,QAAQ,CAACkkB,IAAd,EAAoB;EAClB,QAAIshB,WAAW,GAAG,CAAlB,EAAqB;EACnBA,MAAAA,WAAW;EACXx2B,MAAAA,UAAU,CAACs2B,GAAD,EAAM,IAAN,EAAY/oB,GAAZ,EAAiB;EACzBpW,QAAAA,MAAM,EAAEo1B,OADiB;EAEzBn1B,QAAAA,OAAO,EAAE+S,QAFgB;EAGzBjT,QAAAA,OAAO,EAAEi1B,QAHgB;EAIzBv+B,QAAAA,MAAM,EAAE2oC;EAJiB,OAAjB,CAAV;EAMD;;EACD;EACD;;EACD,QAAM0H,uBAAuB,GAAIC,cAAD,IAAoB;EAClD5xC,IAAAA,MAAM,CAACgV,IAAP,CAAY48B,cAAZ,EAA4BvmB,GAA5B,CAAgC9pB,GAAG,IAAI;EACrC,UAAIswC,SAAJ,EAAe52C,EAAf;;EACA,UAAI22C,cAAc,CAACrwC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAhC,EAAuC;EACrCm4B,QAAAA,SAAS,GAAGD,cAAc,CAACrwC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAxC;EACAze,QAAAA,EAAE,GAAGyJ,QAAQ,CAACiV,cAAT,CAAwBk4B,SAAxB,CAAL;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,GAAGD,cAAc,CAACrwC,GAAD,CAAd,CAAoBod,OAApB,CAA4Boe,WAAxC;EACA9hC,QAAAA,EAAE,GAAGyJ,QAAQ,CAAC+xB,aAAT,CAAuBob,SAAvB,CAAL;EACD;;EACD,UAAI52C,EAAE,KAAK,IAAX,EAAiB;EACf22C,QAAAA,cAAc,CAACrwC,GAAD,CAAd,CAAoBwe,UAApB,CAA+BnR,IAA/B,KAAwC,CAAxC,GAA4CkuB,2BAA2B,CAAC8U,cAAc,CAACrwC,GAAD,CAAf,CAAvE,GAA+F27B,6BAA6B,CAAC0U,cAAc,CAACrwC,GAAD,CAAf,CAA5H;EACA,eAAOqwC,cAAc,CAACrwC,GAAD,CAArB;EACD;EACF,KAbD;EAcD,GAfD;;EAiBA,QAAMuwC,eAAe,GAAIF,cAAD,IAAoB;EAC1ChsC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgC,MAAM;EACpC,UAAIzQ,KAAK,GAAG,CAAZ;;EACA,UAAIA,KAAK,GAAG,EAAZ,EAAgB;EACd,cAAMxC,CAAC,GAAGijB,WAAW,CAAC,MAAM;EAC1B0iB,UAAAA,uBAAuB,CAACC,cAAD,CAAvB;;EACA,cAAI5xC,MAAM,CAACgV,IAAP,CAAY48B,cAAZ,EAA4BjwC,MAA5B,KAAuC,CAAvC,IAA4C6M,KAAK,KAAK,EAA1D,EAA8D;EAC5D0gB,YAAAA,aAAa,CAACljB,CAAD,CAAb;EACA4lC,YAAAA,cAAc,GAAG,EAAjB;EACD;;EACDpjC,UAAAA,KAAK;EACN,SAPoB,EAOlB,GAPkB,CAArB;EAQD;EACF,KAZD;EAaD,GAdD;;EAgBA,MAAIyS,GAAG,CAAC+d,YAAJ,IAAoB,IAAxB,EAA8B;EAC5B,UAAM4S,cAAc,GAAG,EAAvB;;EACA,SAAK,IAAI3nC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAAC+d,YAAJ,CAAiBr9B,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAMkmC,WAAW,GAAGlvB,GAAG,CAAC+d,YAAJ,CAAiB/0B,KAAjB,CAApB;;EACA,UAAIkmC,WAAW,CAACxxB,OAAZ,CAAoB+rB,YAApB,IAAoC,IAApC,IAA4CyF,WAAW,CAACxxB,OAAZ,CAAoB+rB,YAApB,KAAqC,CAArF,EAAwF;EACtFsE,QAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD,OAFD,MAEO,IAAIA,WAAW,CAACxxB,OAAZ,CAAoB+rB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnD+E,QAAAA,aAAa,GAAGU,WAAhB;EACAvqC,QAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB8mB,YAArB,GAAoCjD,cAApC;EACD,OAHM,MAGA,IAAI0D,WAAW,CAACxxB,OAAZ,CAAoB+rB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnD,YAAIyF,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EACrCuuB,UAAAA,oBAAoB,CAACgT,WAAD,CAApB;EACD,SAFD,MAEO,IAAIA,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,IAAqCuhC,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAzE,EAA4E;EAAE;EACnF,gBAAMsjB,OAAO,GAAGie,WAAW,CAACxxB,OAAZ,CAAoBjF,KAApB,GAA4BhV,QAAQ,CAACiV,cAAT,CAAwBw2B,WAAW,CAACxxB,OAAZ,CAAoBjF,KAA5C,CAA5B,GAAiFhV,QAAQ,CAAC+xB,aAAT,CAAuB0Z,WAAW,CAACxxB,OAAZ,CAAoBoe,WAA3C,CAAjG;;EACA,cAAI7K,OAAO,KAAK,IAAhB,EAAsB;EACpBie,YAAAA,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,GAAoCkuB,2BAA2B,CAACqT,WAAD,CAA/D,GAA+EjT,6BAA6B,CAACiT,WAAD,CAA5G;EACD,WAFD,MAEO;EACLyB,YAAAA,cAAc,CAACzB,WAAW,CAAC5xB,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAD,CAAd,GAAoD6qC,WAApD,CADK;EAEN;EACF,SAPM,MAOA,IAAIA,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CylB,UAAAA,mBAAmB,CAAC8b,WAAD,EAAc,KAAd,CAAnB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CwuB,UAAAA,gBAAgB,CAAC+S,WAAD,CAAhB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACpwB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CgwB,UAAAA,UAAU,CAACuR,WAAD,CAAV;EACD,SAFM,MAEA;EACLnB,UAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD;EACF;EACF,KA7B2B;;;EA+B5B,QAAInwC,MAAM,CAACgV,IAAP,CAAY48B,cAAZ,EAA4BjwC,MAAhC,EAAwC;EACtC,UAAI+C,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC+hB,QAAAA,uBAAuB,CAACC,cAAD,CAAvB;EACD,OAFD,MAEO;EACLE,QAAAA,eAAe,CAACF,cAAD,CAAf;EACD;EACF;EACF;;EAED,QAAMG,wBAAwB,GAAG,MAAM;EACrC,QAAI9wB,GAAG,CAAC+M,aAAR,EAAuB;EACrBD,MAAAA,kBAAkB,CAAC9M,GAAD,CAAlB;EACA;EACD;;EACD,QAAIA,GAAG,CAACgN,YAAR,EAAsB;EACpB,YAAM+jB,MAAM,GAAG,EAAf;;EACA,WAAK,IAAI/nC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAACgN,YAAJ,CAAiBtsB,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAIkgC,kBAAkB,CAAClpB,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAD,CAAlB,KAAgD,KAApD,EAA2D;EACzD+nC,UAAAA,MAAM,CAACtoC,IAAP,CAAYuX,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAZ;EACD;EACF;;EACD8jB,MAAAA,kBAAkB,CAACikB,MAAD,CAAlB;EACD;EACF,GAdD;;EAgBA,MAAI/wB,GAAG,CAAC4M,eAAJ,IAAuB5M,GAAG,CAACgN,YAAJ,IAAoB,IAA/C,EAAqD;EACnD;EACJ;EACA;EACA;EACA;EAEI,QAAIyD,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EACjC;;EACD,QAAIloB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBsY,MAAAA,GAAG,CAAC4M,eAAJ,IAAuBD,uBAAuB,CAAC3M,GAAG,CAAC4M,eAAL,CAA9C;EACAU,MAAAA,kBAAkB,CAAC0b,OAAD,CAAlB,CACGxa,IADH,CACQ,MAAM;EACVsiB,QAAAA,wBAAwB;EACzB,OAHH,EAIGriB,KAJH,CAISvrB,CAAC,IAAI,EAJd;EAKD,KAPD,MAOO;EACL4tC,MAAAA,wBAAwB;EACzB;EACF;;EAED,MAAI9wB,GAAG,CAAC2lB,aAAR,EAAuB;EACrBD,IAAAA,oBAAoB,CAAC1lB,GAAG,CAAC2lB,aAAL,EAAoBtlC,MAApB,EAA4BsJ,OAA5B,CAApB;EACD;;EAED,MAAIqW,GAAG,CAACgxB,IAAR,EAAc;EACZhsC,IAAAA,GAAG,CAACiD,aAAJ,CAAkBgpC,cAAlB,CAAiCjxB,GAAG,CAACgxB,IAArC;EACA;EACD;;EAED,MAAIzuC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI;EACF,UAAIud,GAAG,CAACkxB,IAAJ,IAAY,IAAhB,EAAsB;EACpB,cAAMC,SAAS,GAAGnxB,GAAG,CAACkxB,IAAJ,CAAS7B,MAA3B;EACA,cAAM+B,UAAU,GAAGpxB,GAAG,CAACkxB,IAAJ,CAASh3B,OAA5B;EACA,cAAMm3B,UAAU,GAAGrxB,GAAG,CAACkxB,IAAJ,CAASI,UAA5B;EACA,cAAMtrB,GAAG,GAAG3kB,MAAM,EAAlB;EACAkB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,QAA3B,EAAqCmgB,GAArC;EACAzjB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,MAA3B,EAAmCwrC,UAAnC;EACA9S,QAAAA,aAAa,CAAC4S,SAAD,CAAb;EACA5uC,QAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;;EACA,YAAI/B,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChCqR,UAAAA,oBAAoB,CAACi5B,UAAD,EAAa,IAAb,CAApB;EACD,SAFD,MAEO;EACLj5B,UAAAA,oBAAoB,CAACi5B,UAAD,EAAa,KAAb,CAApB;EACD;EACF;;EACD,UAAIpxB,GAAG,CAACrH,GAAJ,IAAW,IAAf,EAAqB;EACnBA,QAAAA,GAAG,CAACqH,GAAG,CAACrH,GAAL,CAAH;EACD;;EACD,UAAIqH,GAAG,CAACuxB,WAAJ,IAAmB,IAAnB,IAA2BvxB,GAAG,CAACuxB,WAAJ,CAAgB7wC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACA09B,QAAAA,eAAe,CAACpe,GAAG,CAACuxB,WAAL,EAAkB,IAAlB,CAAf;EACD;;EACD,UAAIvxB,GAAG,CAACwxB,WAAJ,IAAmB,IAAnB,IAA2BxxB,GAAG,CAACwxB,WAAJ,CAAgB9wC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACA09B,QAAAA,eAAe,CAACpe,GAAG,CAACwxB,WAAL,EAAkB,IAAlB,CAAf;EACD;EACF,KA3BD,CA2BE,OAAOtuC,CAAP,EAAU;EACV8lC,MAAAA,OAAO,CAAC19B,KAAR,CAAc,iCAAiCpI,CAA/C;EACD;EACF;EACF,CAv5BD;;;;EC7Be,MAAMuuC,IAAN,CAAW;EAGxB13C,EAAAA,WAAW,OAER;EAAA,QAFU;EACX+S,MAAAA;EADW,KAEV;EAAA;EAAA;EAAA;EAAA;EACD,gGAAgCA,uBAAhC;EACD;;EAED4kC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAIC,UAAU,GAAGpvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;;EACA,QAAIgsC,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,GAAG,CAAb;EACD;;EACD,WAAOA,UAAP;EACD;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,UAAMC,WAAW,GAAGtvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAApB;;EACA,QAAIksC,WAAW,IAAI,IAAnB,EAAyB;EACvB,aAAO,IAAIzyC,IAAJ,CAASyyC,WAAW,GAAG,IAAvB,CAAP;EACD;EACF;;EA5BuB;;ECCnB,MAAMC,SAAS,GAAG;EACvBC,EAAAA,OAAO,EAAE,CADc;EAEvBC,EAAAA,KAAK,EAAE,CAFgB;EAGvBC,EAAAA,IAAI,EAAE,CAHiB;EAIvBC,EAAAA,KAAK,EAAE,CAJgB;EAKvBC,EAAAA,QAAQ,EAAE;EALa,CAAlB;;;;;;;;EAQA,MAAMC,MAAN,CAAa;EAGlBr4C,EAAAA,WAAW,CAAEs4C,QAAF,EAAY;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SADvBC,SACuB,GADX,EACW;EACrB,8DAAiBD,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BP,SAAS,CAACG,IAAzD;EACA,SAAKK,SAAL,GAAiB,EAAjB;EACD;;EAED,MAAID,QAAJ,GAAgB;EACd,uCAAO,IAAP;EACD;;EAED,MAAIA,QAAJ,CAAcA,QAAd,EAAwB;EACtB,8DAAiBA,QAAjB;EACD;;EAED/mC,EAAAA,KAAK,CAAEmU,OAAF,EAAW;EACd,QAAI,2DAAkBqyB,SAAS,CAACE,KAAhC,EAAuC;EACrC,oDAAU,OAAV,EAAmBvyB,OAAnB;EACD;EACF;;EAED0iB,EAAAA,IAAI,CAAE1iB,OAAF,EAAW;EACb,QAAI,2DAAkBqyB,SAAS,CAACG,IAAhC,EAAsC;EACpC,oDAAU,KAAV,EAAiBxyB,OAAjB;EACD;EACF;;EAEDlZ,EAAAA,KAAK,CAAEkZ,OAAF,EAAW;EACd,QAAI,2DAAkBqyB,SAAS,CAACI,KAA5B,gCAAqC,IAArC,iCAAJ,EAA8D;EAC5D,oDAAU,OAAV,EAAmBzyB,OAAnB;EACD;EACF;;EAED8yB,EAAAA,OAAO,CAAE9yB,OAAF,EAAW;EAChB,QAAI,2DAAkBqyB,SAAS,CAACK,QAAhC,EAA0C;EACxC,oDAAU,UAAV,EAAsB1yB,OAAtB;EACD;EACF;;EAED7e,EAAAA,WAAW,CAAE4xC,IAAF,EAAQxxB,WAAR,EAAqB;EAC9B,SAAKsxB,SAAL,CAAe/tC,CAAf,GAAmBiuC,IAAnB;EACA,SAAKF,SAAL,CAAepwC,CAAf,GAAmB8e,WAAnB;EACA,SAAK1V,KAAL,WAAcE,sBAAd,cAAwCgnC,IAAxC,eAAiDxxB,WAAjD;EACD;;EA5CiB;;6BA8CZyxB,OAAOhzB,SAAS;EACpB,MAAI9a,MAAM,CAAC8P,OAAX,EAAoB;EAClB,QAAI;EACF,YAAMyX,EAAE,GAAG,IAAI9sB,IAAJ,GAAWoC,OAAX,EAAX;EACAiT,MAAAA,OAAO,CAACg+B,KAAD,CAAP,sBAA6BvmB,EAA7B,gBAAqCzM,OAArC;EACD,KAHD,CAGE,OAAOvc,CAAP,EAAU;EACb;EACF;;uCAEqB;EACpB,SAAQ,OAAOqmC,cAAP,KAA0B,WAA1B,IAAyCA,cAAc,CAACmJ,MAAf,KAA0B,EAA3E;EACD;;;;;;;;EC/DY,MAAMC,cAAN,CAAqB;EAIvB;EAGX54C,EAAAA,WAAW,OAGR;EAAA,QAHU;EACXsG,MAAAA,MADW;EAEXyM,MAAAA;EAFW,KAGV;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SANHuP,UAMG;EAAA,SALHkjB,UAKG;EACD,SAAK5hB,SAAL,GAAiBpb,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;EACA,8DAAetF,MAAf;EACA,gGAAgCyM,uBAAhC;EACD;;EAED,MAAI6Q,SAAJ,GAAiB;EACf,uCAAO,IAAP;EACD;;EAED,MAAIA,SAAJ,CAAeA,SAAf,EAA0B;EACxB,gEAAkBA,SAAlB;EACD;;EAEDnT,EAAAA,sBAAsB,GAAI;EACxB,QAAIooC,UAAU,GAAGrwC,cAAc,CAAC2B,UAAf,CAA0B,KAAKmY,UAA/B,CAAjB;EACA,QAAI/c,GAAG,GAAG,EAAV;;EAEA,QAAIszC,UAAU,IAAI,IAAlB,EAAwB;EACtB;EACAA,MAAAA,UAAU,GAAGA,UAAU,CAAC7xC,OAAX,CAAmBjG,gBAAnB,EAAqC,GAArC,CAAb;EAEAwE,MAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAW2vC,UAAX,CAAN;;EACA,UAAI,CAAC9zC,QAAQ,CAACQ,GAAD,CAAb,EAAoB;EAClBA,QAAAA,GAAG,GAAG,EAAN;EACD,OAFD,MAEO;EACL,YAAI,OAAOA,GAAG,CAACyL,CAAX,KAAiB,WAArB,EAAkC;EAAE;EAClC,gBAAMuC,QAAQ,GAAGhO,GAAG,CAACyL,CAArB;EACA,gBAAMib,GAAG,GAAG3kB,MAAM,EAAlB;;EACA,cAAK2kB,GAAG,GAAG1Y,QAAP,GAAoB/R,wBAAwB,GAAG,EAAnD,EAAwD;EACtD;EACA;EACA;EACA+D,YAAAA,GAAG,GAAG,EAAN;EACD;EACF;EACF;EACF;;EACD,SAAKigC,UAAL,GAAkBjgC,GAAlB;EACA,WAAOA,GAAP;EACD;;EAED0L,EAAAA,sBAAsB,CAAE1L,GAAF,EAAO;EAC3B,UAAMuzC,MAAM,GAAGjwC,IAAI,CAACC,SAAL,CAAevD,GAAf,CAAf;EACAiD,IAAAA,cAAc,CAAC8C,iBAAf,CAAiC,KAAKgX,UAAtC,EAAkDw2B,MAAlD,EAA0Dt3C,wBAA1D,EAAoFuT,WAAW,EAA/F;EACD;;EAEDhE,EAAAA,aAAa,CAAEjB,OAAF,EAAW;EACtB;EACA;EACA,QAAI,OAAO,KAAK8T,SAAZ,KAA0B,WAA1B,IAAyC,KAAKA,SAAL,KAAmB9T,OAAhE,EAAyE;EACvE,YAAMipC,kBAAkB,GAAGvwC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAA3B,CADuE;;EAGvE,UAAI,OAAOmtC,kBAAP,KAA8B,WAAlC,EAA+C;EAC7CvwC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC,CAAjC;EACD,OAJD,MAIO,IAAIitC,kBAAkB,KAAKjpC,OAA3B,EAAoC;EACzC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCitC,kBAAjC;EACAvwC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACA,YAAIkpC,YAAY,GAAGxwC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAnB;;EACA,YAAI,OAAOotC,YAAP,KAAwB,WAA5B,EAAyC;EACvCA,UAAAA,YAAY,GAAG,CAAf;EACD;;EACDxwC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCktC,YAAY,GAAG,CAAhD;EACD;;EACD,WAAKp1B,SAAL,GAAiB9T,OAAjB;EACD;EACF;;EAEDmpC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,KAAKzT,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK/0B,sBAAL,EAAlB;EACD;;EACD,UAAMyoC,YAAY,GAAG,KAAK1T,UAAL,CAAgBz1B,CAArC;;EACA,QAAImpC,YAAY,IAAI,IAApB,EAA0B;EACxB,YAAM/mB,EAAE,GAAG7qB,MAAM,EAAjB;EACA,aAAOC,IAAI,CAACC,KAAL,CAAW2qB,EAAE,GAAG+mB,YAAhB,CAAP;EACD;EACF;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EAED,QAAI,KAAK3T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK/0B,sBAAL,EAAlB;EACD;;EACD,WAAO,KAAK+0B,UAAL,CAAgB/lB,CAAvB;EACD;;EAxGiC;;ECGpC,IAAI25B,KAAK,GAAG,CAAZ;EACA,IAAIC,WAAW,GAAG,CAAlB;;;;;;;;;;;;;;;;EAEe,MAAMC,cAAN,CAAqB;EASlCt5C,EAAAA,WAAW,OAAiE;EAAA,QAA/D;EAAEsG,MAAAA,MAAF;EAAU2R,MAAAA,OAAV;EAAmBpI,MAAAA,MAAnB;EAA2BC,MAAAA,OAA3B;EAAoCiD,MAAAA;EAApC,KAA+D;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAH7D;EAG6D;EAAA,SAF5E7B,gBAE4E,GAFzD,KAEyD;EAC1E,8DAAe5K,MAAf;EACA,gEAAgB2R,OAAhB;EACA,8DAAepI,MAAf;EACA,gEAAgBC,OAAhB;EACA,gGAAgCiD,uBAAhC;EAEA2E,IAAAA,iBAAiB,CAACpR,MAAlB,GAA2BA,MAA3B;EACAoR,IAAAA,iBAAiB,CAAC7H,MAAlB,GAA2BA,MAA3B;EACA6H,IAAAA,iBAAiB,CAACO,OAAlB,GAA4BA,OAA5B;EACD;;EAED9G,EAAAA,mBAAmB,GAAI;EACrB,UAAMxE,SAAS,GAAGnE,cAAc,CAAC2C,kBAAf,CAAkCrJ,YAAlC,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;EAC1D;EACD;;EACD,SAAKuE,gBAAL,GAAwB,IAAxB;;EACA,SAAK,MAAM3G,GAAX,IAAkBoC,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAAClH,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,cAAM6B,WAAW,GAAGO,SAAS,CAACpC,GAAD,CAA7B;;EACA,YAAI,OAAO6B,WAAW,CAACmtC,KAAnB,KAA6B,WAAjC,EAA8C;EAC5C,kEAAa/sC,KAAb,CAAmB,+BAA+BJ,WAAW,CAACG,CAA9D;;EACA,cAAI,OAAOH,WAAW,CAACG,CAAnB,KAAyB,WAA7B,EAA0C;EACxC;EACZ;EAEY,kBAAMuD,OAAO,GAAGjH,IAAI,CAACK,KAAL,CAAWV,cAAc,CAAC2B,UAAf,CAA0B5I,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAA/D,CAAX,CAAhB;;EACA,gBAAI6P,OAAJ,aAAIA,OAAJ,uBAAIA,OAAO,CAAEC,CAAb,EAAgB;EACd3D,cAAAA,WAAW,CAACG,CAAZ,GAAgBH,WAAW,CAACG,CAAZ,GAAgB,KAAhB,GAAwBuD,OAAO,CAACC,CAAhD;EACD;;EACD2H,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BzL,WAAW,CAACG,CAA1C;EACD;;EACDH,UAAAA,WAAW,CAACmtC,KAAZ,GAAoB,IAApB;EACD;EACF;EACF;;EACD/wC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/I,YAAhC,EAA8C6K,SAA9C;EACA,SAAKuE,gBAAL,GAAwB,KAAxB;EACD;;EAEDkP,EAAAA,qBAAqB,CAAExK,UAAF,EAAc4jC,UAAd,EAA0B;EAC7C;EACA,QAAI,OAAOA,UAAP,KAAsB,WAA1B,EAAuC;EACrC5jC,MAAAA,UAAU,GAAGxP,sBAAsB,CAACwP,UAAD,8BAAa,IAAb,wBAAnC;EACD;;EAED,QAAI,CAACtQ,aAAa,CAAC,wDAAaizC,SAAd,CAAlB,EAA4C;EAC1C3iC,MAAAA,UAAU,CAAC6jC,UAAX,GAAwB,wDAAalB,SAArC;EACA,8DAAaA,SAAb,GAAyB,EAAzB;EACD;;EAED3iC,IAAAA,UAAU,CAAC3V,EAAX,GAAgB,0DAAcA,EAA9B;;EAEA,QAAIgG,YAAY,CAAC,wDAAa2G,OAAd,CAAhB,EAAwC;EACtCgJ,MAAAA,UAAU,CAACoM,CAAX,GAAe,wDAAapV,OAA5B;EACD;;EAED,UAAMrH,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACAmF,IAAAA,UAAU,CAAC7F,CAAX,GAAexK,GAAG,CAACwK,CAAnB,CAlB6C;;EAmB7C6F,IAAAA,UAAU,CAAC8jC,EAAX,GAAiB,OAAOn0C,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAzD,CAnB6C;;EAoB7C,QAAI8yB,KAAK,GAAG7oC,QAAQ,CAACqB,QAAT,CAAkB+/B,QAA9B;EACAyH,IAAAA,KAAK,GAAGA,KAAK,CAACvrC,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAR;EACA4O,IAAAA,UAAU,CAAC+jC,EAAX,GAAgB,EAAE,GAAG/jC,UAAU,CAAC+jC,EAAhB;EAAoBC,MAAAA,GAAG,EAAE,iBAAzB;EAAyD9O,MAAAA,QAAQ,EAAEyH,KAAnE;EAA0E,SAAGtnC,GAAG,CAACgD;EAAjF,KAAhB,CAtB6C;;EAuB7C,QAAIuhC,cAAc,CAAC/pC,cAAf,CAA8B,QAA9B,CAAJ,EAA6C;EAAEmQ,MAAAA,UAAU,CAACpJ,KAAX,GAAmB,IAAnB;EAAyB;;EAExE,WAAOoJ,UAAP;EACD;;EAEDyK,EAAAA,QAAQ,CAAErX,IAAF,EAAQ;EACd;EACA,oEAAoBR,cAAc,CAACwD,mBAAf,CAAmChL,KAAnC,CAApB;;EACA,QAAI,kEAAsBmF,SAAtB,gCAAmC,IAAnC,6BAAJ,EAA0D;EACxD6C,MAAAA,IAAI,CAAC6wC,EAAL,GAAU,IAAV;;EACA,8DAAartC,KAAb,CAAmB,yEAAnB;EACD;;EACD,oCAAI,IAAJ,6DAAqC;EACnC,YAAMstC,YAAY,GAAGtxC,cAAc,CAACoD,WAAf,CAA2B,QAA3B,CAArB;EACA,YAAMmuC,aAAa,GAAGvxC,cAAc,CAACoD,WAAf,CAA2B,MAA3B,CAAtB,CAFmC;;EAKnC,UAAI,OAAOkuC,YAAP,KAAwB,WAAxB,IAAuC,OAAOC,aAAP,KAAyB,WAApE,EAAiF;EAC/E/wC,QAAAA,IAAI,CAACgxC,KAAL,GAAa,IAAb;EACA;EACD;;EACD,YAAM/tB,GAAG,GAAG3kB,MAAM,EAAlB,CATmC;;EAWnC,UAAIwyC,YAAY,GAAGC,aAAf,GAA+B9tB,GAAnC,EAAwC;EACtCjjB,QAAAA,IAAI,CAACgxC,KAAL,GAAa,IAAb;EACD;EACF;EACF,GApGiC;;EAuGlC;EACF;EACA;EACA;EACA;EACA;;;EACEz5B,EAAAA,kBAAkB,CAAEtM,GAAF,EAAOoK,QAAP,EAAiBtG,WAAjB,EAA8B5E,OAA9B,EAAuC;EACvD,UAAM8Y,GAAG,GAAG3kB,MAAM,EAAlB;EACA2M,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,EAAEhJ,GAAG,CAACC,WAAJ,CAAgB2B,KAA9B,CAAd;EACA,UAAM7D,IAAI,GAAGiL,GAAG,GAAG,KAAN,GAAcgY,GAAd,GAAoB,MAApB,GAA6BmtB,KAA1C;EACA5wC,IAAAA,cAAc,CAAC4D,WAAf,CAA2BpD,IAA3B,EAAiCiC,GAAG,CAACC,WAAJ,CAAgB2B,KAAjD,8BAAwD,IAAxD,yBAJuD;;EAOvD,QAAI5B,GAAG,CAAC6C,OAAR,EAAiB,OAPsC;EASvD;EACA;EACA;EACA;;EACA,QAAI,CAAC,CAACuQ,QAAD,IAAc,kEAAsBlY,SAAtB,gCAAmC,IAAnC,6BAAf,KAAyE,CAACyE,MAAM,CAAC0F,eAArF,EAAsG;EACpG,UAAI2b,GAAG,KAAKotB,WAAZ,EAAyB;EACvBD,QAAAA,KAAK;EACN,OAFD,MAEO;EACLC,QAAAA,WAAW,GAAGptB,GAAd;EACAmtB,QAAAA,KAAK,GAAG,CAAR;EACD;;EACDxuC,MAAAA,MAAM,CAAC2F,OAAP,GAAiBtF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC;EACA6K,MAAAA,iBAAiB,CAACG,WAAlB,CAA8B7O,IAA9B,EAAoC,KAApC,EAA2C+O,WAA3C,EAAwD5E,OAAxD;EACD,KATD,MASO;EACL,8DAAa3G,KAAb,uCAAkDvB,GAAG,CAACgC,YAAtD,2DAAuF,IAAvF,wEAAyIrC,MAAM,CAAC0F,eAAhJ;EACD;EACF;;EAEDQ,EAAAA,sBAAsB,CAAEmpC,SAAF,EAAa;EACjC,UAAM/xB,OAAO,GAAG1f,cAAc,CAAC2C,kBAAf,CAAkC7H,sBAAlC,CAAhB,CADiC;;EAGjC,QAAI4kB,OAAJ,EAAa;EACX,YAAMlf,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,MAAZ;;EACA,UAAI3N,YAAY,CAACg0C,SAAD,CAAhB,EAA6B;EAC3BjxC,QAAAA,IAAI,CAACgZ,CAAL,GAASi4B,SAAT;EACD;;EACDjxC,MAAAA,IAAI,CAAC0e,MAAL,GAAc,YAAd;EACA1e,MAAAA,IAAI,CAAC/I,EAAL,GAAU,0DAAcA,EAAxB;;EAEA,YAAMsF,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EAEAzH,MAAAA,IAAI,CAAC+G,CAAL,GAASxK,GAAG,CAACwK,CAAb,CAXW;;EAYX,YAAMuQ,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACA5I,MAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EAA2C,IAA3C;EACA9P,MAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACD,KAtBgC;;;EAwBjC,SAAKqlC,aAAL,CAAmBxgB,OAAnB;EACD;;EAEDwgB,EAAAA,aAAa,CAAExgB,OAAF,EAAW;EACtB,QAAI,CAACA,OAAL,EAAc,OADQ;;EAGtBA,IAAAA,OAAO,GAAG,KAAK9H,qBAAL,CAA2B8H,OAA3B,EAAoC,IAApC,CAAV;EACAA,IAAAA,OAAO,GAAGrf,IAAI,CAACC,SAAL,CAAeof,OAAf,CAAV;;EACA,QAAI5P,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAACuS,OAAD,8BAAU,IAAV,wBAA/B,CAAtB;EACAxQ,IAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EARsB;;EAUtB9P,IAAAA,cAAc,CAACC,IAAf,CAAoBxG,cAApB,EAAoC,IAApC;EACD;;EAED8R,EAAAA,YAAY,CAAE/K,IAAF,EAAQ;EAClB,gFAAyBA,IAAI,CAACmK,OAA9B;;EACAnK,IAAAA,IAAI,GAAG,KAAKoX,qBAAL,CAA2BpX,IAA3B,EAAiC7C,SAAjC,CAAP;EACA,SAAKka,QAAL,CAAcrX,IAAd;EACAA,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;EACA,UAAM2F,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EAEA,SAAKC,kBAAL,CAAwBjI,WAAxB,EAAqCrN,GAAG,CAACgC,YAAzC,EAAuD,KAAvD,EAA8DjE,IAAI,CAACmK,OAAnE;EACD;;EA2BD+mC,EAAAA,IAAI,CAAEjmC,GAAF,EAAO2Z,IAAP,EAAa;EACf,WAAO+U,KAAK,CAAC1uB,GAAD,EAAM;EAChBkmC,MAAAA,MAAM,EAAE,MADQ;EAEhBC,MAAAA,OAAO,EAAE;EAAE,wBAAgB;EAAlB,OAFO;EAGhBxsB,MAAAA,IAAI,EAAEA;EAHU,KAAN,CAAL,CAKJ6G,IALI,CAKEiO,QAAD,IAAc;EAClB,UAAIA,QAAQ,CAACE,EAAb,EAAiB;EACf,eAAOF,QAAQ,CAAC7F,IAAT,EAAP;EACD;;EACD,YAAM6F,QAAN;EACD,KAVI,EAWJjO,IAXI,CAWEzrB,IAAD,IAAU;EACd,8DAAawD,KAAb,CAAmB,sBAAnB,EAA2CxD,IAA3C;;EACA,aAAOA,IAAP;EACD,KAdI,EAeJ0rB,KAfI,CAeGvrB,CAAD,IAAO;EACZ,8DAAaqD,KAAb,CAAmB,4BAAnB,EAAiDrD,CAAjD;;EACA,YAAMA,CAAN;EACD,KAlBI,CAAP;EAmBD;;EA1OiC;;2DA6LbgK,SAAS;EAC5B,MAAI3K,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI,OAAOuC,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,UAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,QAAAA,GAAG,CAAC+B,eAAJ,GAAsB,EAAtB;EACD;EACF;;EAED,UAAMqtC,KAAK,GAAG/yC,MAAM,EAApB;EACA,QAAIgzC,SAAS,GAAGrvC,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAhB;;EACA,QAAI,OAAOmnC,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,CAAC,CAAD,CAAT,GAAeD,KAAf;EACAC,MAAAA,SAAS,CAAC,CAAD,CAAT;EACD,KAHD,MAGO;EACLA,MAAAA,SAAS,GAAG,EAAZ;EACAA,MAAAA,SAAS,CAAC5rC,IAAV,CAAe,CAAf;EACA4rC,MAAAA,SAAS,CAAC5rC,IAAV,CAAe2rC,KAAf;EACAC,MAAAA,SAAS,CAAC5rC,IAAV,CAAe2rC,KAAf;EACD;;EACDpvC,IAAAA,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,IAA+BmnC,SAA/B;EACA9xC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;EACD;EACF;;;;;;;;;;;;EC5MY,MAAMutC,OAAN,SAAsBhoC,KAAtB,CAA4B;EAMzCvS,EAAAA,WAAW,OAKX8S,MALW,EAKH;EAAA,QALK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGX3R,MAAAA;EAHW,KAKL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,8DAAeA,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACD,GAjBwC;;;EAoBzCpE,EAAAA,IAAI,GAAiB;EAAA,sCAAZ8rC,UAAY;EAAZA,MAAAA,UAAY;EAAA;;EACnB,QAAIvvC,GAAG,CAAC2C,kBAAR,EAA4B;EAC1B,oFAA0B3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA1B,GAA8BsE,GAAG,CAAC4C,YAAlC,GAAiD2sC,UAA3E;EACD,KAFD,MAEO;EACLvvC,MAAAA,GAAG,CAAC4C,YAAJ,CAAiBa,IAAjB,CAAsB,GAAG8rC,UAAzB;EACD;;EACD,WAAO,CAAP;EACD;;EAEDvnC,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAlCwC;;6DAoCnBunC,YAAY;EAChC,MAAIjoC,KAAK,CAACC,OAAN,CAAcgoC,UAAd,KAA6BA,UAAU,CAAC7zC,MAAX,GAAoB,CAArD,EAAwD;EACtD,UAAM8zC,UAAU,GAAGD,UAAU,CAACltB,MAAX,CAAkB,CAACsU,IAAD,EAAO8Y,IAAP,MAAiB,EAAE,GAAG9Y,IAAL;EAAW,SAAG8Y;EAAd,KAAjB,CAAlB,EAA0D,EAA1D,CAAnB;EACA,QAAI1xC,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA,QAAIi/B,MAAM,GAAG,KAAb;;EAEA,QAAIF,UAAU,CAACh1C,cAAX,CAA0BvD,UAA1B,CAAJ,EAA2C;EACzCy4C,MAAAA,MAAM,GAAGF,UAAU,CAACv4C,UAAD,CAAnB;;EACA,UAAI,OAAOy4C,MAAP,KAAkB,SAAtB,EAAiC;EAC/Bj/B,QAAAA,UAAU,CAACvZ,aAAD,CAAV,GAA4Bw4C,MAA5B,CAD+B;;EAG/B1vC,QAAAA,GAAG,CAACiC,cAAJ,GAAqB,CAACytC,MAAtB;EACD;EACF;;EACD,QAAIF,UAAU,CAACh1C,cAAX,CAA0BpD,SAA1B,CAAJ,EAA0C;EACxC,YAAMkW,KAAK,GAAGkiC,UAAU,CAACp4C,SAAD,CAAxB;EACA,YAAMu4C,WAAW,GAAI,OAAOriC,KAAP,KAAiB,SAAlB,GAA+BA,KAA/B,GAAuC,KAA3D;EACA/P,MAAAA,cAAc,CAACsD,WAAf,CAA2BzJ,SAA3B,EAAsCu4C,WAAtC;EACD;;EACD,QAAI,CAACt1C,aAAa,CAACoW,UAAD,CAAlB,EAAgC;EAC9B1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA5K,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA,YAAMma,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACAhI,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAcpW,UAAd,EAA0By4C,MAAM,GAAG,MAAH,GAAY,OAA5C,CAAtB;;EACA,gEAAcp6B,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EACAutC,MAAAA,UAAU,CAAC9qC,MAAX,CAAkB,CAAlB,EAAqB8qC,UAAU,CAAC7zC,MAAhC;EACD;EACF;EACF;;;;ECzFI,MAAMk0C,QAAN,CAAe;EAGpB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACE76C,EAAAA,WAAW,OAAqB;EAAA,QAAnB;EAAEkO,MAAAA;EAAF,KAAmB;EAAA;EAAA;EAAA;EAAA;EAC9B,SAAK3E,IAAL,GAAY,IAAZ;EACA,SAAKuxC,YAAL,GAAoB,IAApB;EACA,SAAK50C,KAAL,GAAa,IAAb;EACA,SAAK0N,IAAL,GAAY,IAAZ;EACA,SAAKmnC,UAAL,GAAkB,KAAlB;EACA,SAAKC,qBAAL,GAA6B,EAA7B;EACA,wEAAsB9sC,aAAtB;EACD;;EAED+sC,EAAAA,QAAQ,GAAI;EACV,WAAO,KAAK/0C,KAAZ;EACD;;EAEDg1C,EAAAA,eAAe,GAAI;EACjB,WAAO,KAAKJ,YAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;EACE,SAAOhmB,MAAP,CAAevrB,IAAf,EAAqBuxC,YAArB,EAAmC5sC,aAAnC,EAAkD;EAChD,QAAI,CAAC3E,IAAD,IAAS,OAAOA,IAAP,KAAgB,QAA7B,EAAuC;EACrCmR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,2CAAd;EACA,aAAO,IAAP;EACD;;EACD,QAAIhI,IAAI,CAAC2hB,UAAL,CAAgB,GAAhB,KAAwB3hB,IAAI,CAACy3B,QAAL,CAAc,GAAd,CAA5B,EAAgD;EAC9CtmB,MAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAmEhI,IAAjF;EACA,aAAO,IAAP;EACD;;EAED,UAAM4xC,kBAAkB,GAAG,OAAOL,YAAlC;;EACA,QAAIK,kBAAkB,KAAK,QAAvB,IAAmCA,kBAAkB,KAAK,QAA1D,IAAsEA,kBAAkB,KAAK,SAAjG,EAA4G;EAC1GzgC,MAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACA,aAAO,IAAP;EACD;;EAED,UAAM6pC,QAAQ,GAAGltC,aAAa,CAACmtC,WAAd,CAA0B9xC,IAA1B,CAAjB;;EACA,QAAI6xC,QAAJ,EAAc;EACZ,aAAOA,QAAP;EACD;;EAED,UAAME,WAAW,GAAG,IAAIT,QAAJ,CAAa;EAAE3sC,MAAAA;EAAF,KAAb,CAApB;;EACA,QAAI;EACFotC,MAAAA,WAAW,CAAC/xC,IAAZ,GAAmBA,IAAnB;EACA+xC,MAAAA,WAAW,CAACR,YAAZ,GAA2BA,YAA3B;EACAQ,MAAAA,WAAW,CAACp1C,KAAZ,GAAoB40C,YAApB;EACAQ,MAAAA,WAAW,CAAC1nC,IAAZ,GAAmBunC,kBAAnB;EACAjtC,MAAAA,aAAa,CAACqtC,gBAAd,CAA+BD,WAA/B;EACAA,MAAAA,WAAW,CAACE,MAAZ,CAAmBV,YAAnB;EACD,KAPD,CAOE,OAAOvpC,KAAP,EAAc;EACdmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAcA,KAAd;EACD;;EACD,WAAO+pC,WAAP;EACD;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,MAAM,CAAEC,QAAF,EAAY;EAChB,UAAMC,QAAQ,GAAG,KAAKx1C,KAAtB;EACA,SAAKA,KAAL,GAAau1C,QAAb;;EACA,QAAIA,QAAQ,KAAK,IAAb,IAAqBC,QAAQ,KAAK,IAAtC,EAA4C;EAC1C;EACD;;EACD,QAAID,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKC,QAAlC,IAA8C,KAAKX,UAAvD,EAAmE;EACjE;EACD;;EACD,QAAI,kEAAoBY,uBAApB,EAAJ,EAAmD;EACjD,WAAKZ,UAAL,GAAkB,IAAlB;EACA,WAAKa,mBAAL;EACD;EACF;EAED;EACF;EACA;;;EACEA,EAAAA,mBAAmB,GAAI;EACrB,SAAKZ,qBAAL,CAA2B/gC,OAA3B,CAAoC4hC,cAAD,IAAoB;EACrDA,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD,KAFD;EAGD;EAED;EACF;EACA;EACA;;;EACEC,EAAAA,uBAAuB,CAAED,cAAF,EAAkB;EACvC,QAAI,CAACA,cAAL,EAAqB;EACnBnhC,MAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;EACD;;EACD,SAAKoyB,qBAAL,CAA2BtsC,IAA3B,CAAgCmtC,cAAhC;;EAEA,QAAI,kEAAoBF,uBAApB,EAAJ,EAAmD;EACjDE,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD;EACF;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,0BAA0B,CAAEF,cAAF,EAAkB;EAC1C,UAAM5sC,KAAK,GAAG,KAAK+rC,qBAAL,CAA2BtwC,OAA3B,CAAmCmxC,cAAnC,CAAd;;EACA,QAAI5sC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,WAAK+rC,qBAAL,CAA2BtrC,MAA3B,CAAkCT,KAAlC,EAAyC,CAAzC;EACD;EACF;EAED;EACF;EACA;;;EACE+sC,EAAAA,cAAc,GAAI;EAChB,SAAKjB,UAAL,GAAkB,KAAlB;EACD;;EAxImB;;;;;;;;;;;;;;;;;;;;;;;;ECEtB,MAAMkB,aAAN,CAAoB;EAalBj8C,EAAAA,WAAW,OAAuC;EAAA,QAArC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBqI,MAAAA,OAAnB;EAA4B0gB,MAAAA;EAA5B,KAAqC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAFvB;EAEuB;EAChD,8DAAeryB,MAAf;EACA,gEAAgB2R,OAAhB;EACA,gEAAgBrI,OAAhB;EACA,wDAAc+oB,KAAd;EAEA,gEAAkB,EAAlB;EACA,4EAAwB,EAAxB;EACA,gGAAkC,EAAlC;EACA,8GAAyC,EAAzC;EAEA1tB,IAAAA,GAAG,CAACiD,aAAJ,GAAoB,IAApB;EACD;EAED;EACF;EACA;EACA;;;EACEqtC,EAAAA,gBAAgB,CAAED,WAAF,EAAe;EAC7B,UAAM;EAAE/xC,MAAAA;EAAF,QAAW+xC,WAAjB;EACA,8DAAgB/xC,IAAhB,IAAwB+xC,WAAxB;EACA5gC,IAAAA,OAAO,CAACkO,GAAR,CAAY,kBAAZ,8BAAgC,IAAhC;EACD;EAED;EACF;EACA;EACA;EACA;;;EACEyyB,EAAAA,WAAW,CAAE9xC,IAAF,EAAQ;EACjB,WAAO,0DAAgBA,IAAhB,CAAP;EACD;;EAEDoyC,EAAAA,uBAAuB,GAAI;EACzB,uCAAO,IAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEO,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,CAAC,0DAAch8C,KAAnB,EAA0B;EACxB,YAAMgI,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,UAAM8f,OAAO,GAAG;EACdtU,MAAAA,IAAI,EAAE,aADQ;EAEdqjC,MAAAA,IAAI,EAAE;EAFQ,KAAhB;;EAKA,SAAK,MAAM1tC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC2e,MAAAA,OAAO,CAAC+uB,IAAR,CAAa1tC,IAAb,IAAqB;EACnBuxC,QAAAA,YAAY,EAAE,0DAAgBvxC,IAAhB,EAAsBuxC,YADjB;EAEnBlnC,QAAAA,IAAI,EAAE,0DAAgBrK,IAAhB,EAAsBqK;EAFT,OAArB;EAID,KAjB0C;;;EAoB3C,QAAI5O,MAAM,CAACgV,IAAP,CAAYkO,OAAO,CAAC+uB,IAApB,EAA0BtwC,MAA1B,KAAqC,CAAzC,EAA4C;EAC1C,YAAMyB,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,QAAIi0C,IAAI,GAAG,EAAX;EACAA,IAAAA,IAAI,GAAG,0DAAcj8B,qBAAd,CAAoCi8B,IAApC,EAA0Cl2C,SAA1C,CAAP;EACAk2C,IAAAA,IAAI,CAACC,EAAL,GAAU,0DAAcl8C,KAAxB;EAEAi8C,IAAAA,IAAI,CAACzoC,IAAL,GAAY,MAAZ;EACA,UAAMga,IAAI,GAAG/kB,IAAI,CAACC,SAAL,CAAe,CAACuzC,IAAD,EAAOn0B,OAAP,CAAf,CAAb;;EACA,UAAMjU,GAAG,GAAG,0DAAczT,aAA1B;;EAEA,WAAO,0DAAc05C,IAAd,CAAmBjmC,GAAnB,EAAwB2Z,IAAxB,EACJ6G,IADI,CACE8nB,CAAD,IAAO;EACX,UAAIJ,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACI,CAAD,CAAb;EACD;;EACD,aAAOA,CAAP;EACD,KANI,EAOJ7nB,KAPI,CAOGvrB,CAAD,IAAO;EACZ,UAAIizC,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACjzC,CAAD,CAAb;EACD;;EACD,UAAIA,CAAC,CAACqzC,MAAF,KAAa,GAAjB,EAAsB;EACpB,gEAAajrC,KAAb,CAAmB,kDAAnB;EACD,OAFD,MAEO,IAAIpI,CAAC,CAACqzC,MAAF,KAAa,GAAjB,EAAsB;EAC3B,gEAAajrC,KAAb,CAAmB,4BAAnB;EACD,OAFM,MAEA;EACL,gEAAaA,KAAb,CAAmB,sBAAnB;EACD;;EACD,YAAMpI,CAAN;EACD,KAnBI,CAAP;EAoBD;EAED;EACF;EACA;EACA;;;EACEszC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,sDAAYhuC,IAAZ,CAAiBvK,UAAjB,EAA6B;EAAE6M,MAAAA,CAAC,EAAE;EAAL,KAA7B;;EACA,QAAI0rC,eAAe,IAAI,OAAOA,eAAP,KAA2B,UAAlD,EAA8D;EAC5D,0EAAsBA,eAAtB;EACD;EACF;;EAEDxF,EAAAA,cAAc,CAAED,IAAF,EAAQ;EACpBv8B,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4BquB,IAA5B;EACA,4FAAgC,IAAhC;EAEAzuC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC7G,SAAhC,EAA2CizC,IAA3C;EACA,4EAAwBA,IAAxB;;EAEA,SAAK,MAAM1tC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC,UAAI0tC,IAAI,CAACxxC,cAAL,CAAoB8D,IAApB,CAAJ,EAA+B;EAC7B,kEAAgBA,IAAhB,EAAsBiyC,MAAtB,CAA6BvE,IAAI,CAAC1tC,IAAD,CAAjC;EACD;EACF;;EAED,oCAAI,IAAJ,mCAAyB;EACvB;EACD;;EAED;EACD;;EAEDozC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,gGAAgCluC,IAAhC,CAAqCkuC,QAArC;;EAEA,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT;EACF,KAND,MAMO;EACL,8DAAarrC,KAAb,CAAmB,4BAAnB;EACD;EACF;;EAEDsrC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT,OAFD,MAEO;EACL,gHAAuCluC,IAAvC,CAA4CkuC,QAA5C;EACD;EACF;EACF;;EAEDE,EAAAA,8BAA8B,CAAEF,QAAF,EAAY;EACxC,UAAM3tC,KAAK,GAAG,0FAAgCvE,OAAhC,CAAwCkyC,QAAxC,CAAd;;EACA,QAAI3tC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,gGAAgCS,MAAhC,CAAuCT,KAAvC,EAA8C,CAA9C;EACD;EACF;;EAED8tC,EAAAA,qCAAqC,CAAEH,QAAF,EAAY;EAC/C,UAAM3tC,KAAK,GAAG,wGAAuCvE,OAAvC,CAA+CkyC,QAA/C,CAAd;;EACA,QAAI3tC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,8GAAuCS,MAAvC,CAA8CT,KAA9C,EAAqD,CAArD;EACD;EACF;;EAlLiB;;+EAoLc;EAC9B,OAAK,IAAI2tC,QAAT,gCAAqB,IAArB,2DAAsD;EACpDA,IAAAA,QAAQ;EACT;;EACD,OAAK,IAAII,QAAT,gCAAqB,IAArB,yEAA6D;EAC3DA,IAAAA,QAAQ;EACT;;EACD,0GAAuCr2C,MAAvC,GAAgD,CAAhD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC7IY,MAAMs2C,SAAN,CAAgB;EAgB7B,MAAIC,GAAJ,GAAW;EACT,uCAAO,IAAP;EACD;;EAED,MAAIA,GAAJ,CAASh3C,KAAT,EAAgB;EACd,UAAMi3C,KAAK,GAAGj3C,KAAK,KAAK,IAAxB;;EACA,QAAI,sDAAgBi3C,KAAhB,IAAyB,oEAAuB,CAApD,EAAuD;EACrD;EACA,UAAIA,KAAJ,EAAW;EACTzzC,QAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EACD,OAFD,MAEO;EACLva,QAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;EACF;;EACD,wDAAcywB,KAAd;EACD;;EAED,MAAIpvC,kBAAJ,GAA0B;EACxB,uCAAO,IAAP;EACD;;EAED,MAAIA,kBAAJ,CAAwB7H,KAAxB,EAA+B;EAC7B,UAAM6H,kBAAkB,GAAG7H,KAAK,KAAK,IAArC;EACA,kFAA2B6H,kBAA3B;EACA9C,IAAAA,GAAG,CAAC8C,kBAAJ,GAAyBA,kBAAzB;EACD;;EAED/N,EAAAA,WAAW,GAAkB;EAAA;;EAAA,QAAhB2Y,SAAgB,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAhCJ,wEAAuBykC,IAAvB,CAA4B,IAA5B;EAgCI;EAAA;EAAA;EAAA;EAAA;EAAA,SA9B7BC,qBA8B6B;EAAA;EAAA;EAAA;EAAA;EAAA,SAswB7BzI,cAtwB6B,GAswBZ,EAtwBY;EAAA,SAuwB7BT,kBAvwB6B,GAuwBR,EAvwBQ;EAC3B,sEAAqB,CAArB;EACA,SAAKmJ,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BF,IAA9B,CAAmC,IAAnC,CAAhC;;EACA,SAAKzlB,wBAAL,GAAgC,MAAM,EAAtC;;EACA,8DAAe,IAAI0gB,MAAJ,CAAWN,SAAS,CAACG,IAArB,CAAf;EACA,gEAAgB,IAAIn4C,OAAJ,uBAAY4Y,SAAS,CAACV,OAAtB,uDAAY,mBAAoB,CAApB,CAAZ,EAAoCU,SAAS,CAACzY,MAAV,4BAAoByY,SAAS,CAACV,OAA9B,wDAAoB,oBAAoB,CAApB,CAApB,CAApC,EAAgFU,SAAS,CAACxY,YAAV,4BAA0BwY,SAAS,CAACV,OAApC,wDAA0B,oBAAoB,CAApB,CAA1B,CAAhF,EAAkIU,SAAS,CAACvY,KAAV,4BAAmBuY,SAAS,CAACV,OAA7B,wDAAmB,oBAAoB,CAApB,CAAnB,CAAlI,CAAhB;EACA,8DAAe,IAAI7G,aAAJ,CAAkB;EAAE9K,MAAAA,MAAM,8BAAE,IAAF;EAAR,KAAlB,CAAf;EACA,kFAA2BqS,SAAS,CAAC5K,kBAAV,IAAgC,KAA3D;EACA,SAAKwvC,cAAL,GAAsB5kC,SAAS,CAAC4kC,cAAV,IAA4B,EAAlD;EACA,gEAAgB,IAAI3E,cAAJ,CAAmB;EACjCtyC,MAAAA,MAAM,8BAAE,IAAF,uBAD2B;EAEjCyM,MAAAA,uBAAuB,EAAE,KAAKuqC;EAFG,KAAnB,CAAhB;EAIA,gEAAgB,IAAIE,cAAJ,CAAkB;EAChCl3C,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhC2R,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCpI,MAAAA,MAAM,8BAAE,IAAF,uBAH0B;EAIhCC,MAAAA,OAAO,8BAAE,IAAF,yBAJyB;EAKhCiD,MAAAA,uBAAuB,EAAE,KAAKuqC;EALE,KAAlB,CAAhB;EAOA,SAAKD,qBAAL,GAA6B1kC,SAAS,CAAC0kC,qBAAV,IAAmC,KAAhE;EACA,SAAK1kB,KAAL,GAAa,IAAI9lB,YAAJ,CAAiB;EAC5BvM,MAAAA,MAAM,8BAAE,IAAF,uBADsB;EAE5BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFqB;EAG5BmD,MAAAA,uBAAuB,EAAE,KAAKuqC;EAHF,KAAjB,EAIV3kC,SAAS,CAACggB,KAJA,CAAb;EAMA,SAAKxY,OAAL,GAAe,IAAIP,cAAJ,CAAmB;EAChCtZ,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCqI,MAAAA,OAAO,8BAAE,IAAF,yBAHyB;EAIhClF,MAAAA,uBAAuB,EAAE,KAAKuqC;EAJE,KAAnB,EAKZ3kC,SAAS,CAACwH,OALE,CAAf;EAOA,SAAKs9B,WAAL,GAAmB,IAAI77B,gBAAJ,CAAqB;EACtChS,MAAAA,OAAO,8BAAE,IAAF,yBAD+B;EAEtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCnI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItCxJ,MAAAA,MAAM,8BAAE,IAAF,uBAJgC;EAKtCuJ,MAAAA,MAAM,8BAAE,IAAF;EALgC,KAArB,EAMhB8I,SAAS,CAAC8kC,WANM,CAAnB;EAQA,SAAKC,OAAL,GAAe,IAAInD,OAAJ,CAAY;EACzB3qC,MAAAA,OAAO,8BAAE,IAAF,yBADkB;EAEzBqI,MAAAA,OAAO,8BAAE,IAAF,yBAFkB;EAGzB3R,MAAAA,MAAM,8BAAE,IAAF;EAHmB,KAAZ,EAIZqS,SAAS,CAAC+kC,OAJE,CAAf;EAMA,SAAKpY,aAAL,GAAqB,IAAIwB,mBAAJ,CAAwB;EAC3CxgC,MAAAA,MAAM,8BAAE,IAAF,uBADqC;EAE3CsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoC;EAG3CqI,MAAAA,OAAO,8BAAE,IAAF;EAHoC,KAAxB,EAIlBU,SAAS,CAAC2sB,aAJQ,CAArB;EAMA,4EAAsB,IAAI2W,aAAJ,CAAkB;EACtC31C,MAAAA,MAAM,8BAAE,IAAF,uBADgC;EAEtCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItC0gB,MAAAA,KAAK,EAAE,KAAKA;EAJ0B,KAAlB,CAAtB;EAOA,oDAAY,IAAIhpB,YAAJ,CAAiB;EAC3BrJ,MAAAA,MAAM,8BAAE,IAAF,uBADqB;EAE3BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoB;EAG3BC,MAAAA,MAAM,8BAAE,IAAF,uBAHqB;EAI3BC,MAAAA,OAAO,8BAAE,IAAF;EAJoB,KAAjB,CAAZ;EAOA,SAAKotC,GAAL,GAAWvkC,SAAS,CAACukC,GAArB;EACA,SAAKnvC,kBAAL,GAA0B4K,SAAS,CAAC5K,kBAApC;EAEA,SAAKkO,IAAL,GAAY,IAAIy7B,IAAJ,CAAS;EACnB3kC,MAAAA,uBAAuB,EAAE,KAAKuqC;EADX,KAAT,CAAZ;EAIA,SAAKxtC,OAAL,GAAe;EACbmpC,MAAAA,cAAc,EAAE,MAAM;EACpB,eAAO,0DAAcA,cAAd,EAAP;EACD,OAHY;EAIbE,MAAAA,YAAY,EAAE,MAAM;EAClB,eAAO,0DAAcA,YAAd,EAAP;EACD;EANY,KAAf;;EASA,SAAKwE,MAAL,GAAc,MAAM;EAClB,8DAAanxC,KAAb,CAAmB,eAAnB;;EACAhE,MAAAA,cAAc,CAACyD,uBAAf;EACD,KAHD;;EAKA,SAAK4V,KAAL,GAAa,MAAM;EACjB,WAAK47B,WAAL,CAAiB57B,KAAjB;EACD,KAFD;;EAIA,SAAK+7B,cAAL,GAAsB,MAAM;EAC1B,aAAO,wDAAavsC,OAAb,EAAP;EACD,KAFD;;EAIA,SAAKwsC,YAAL,GAAoB,MAAM;EACxB,aAAO,0DAAc59C,EAArB;EACD,KAFD;;EAIA,SAAK69C,WAAL,GAAmB,MAAM;EACvB,aAAO,0DAAcv9C,iBAArB;EACD,KAFD;;EAIA,SAAKw9C,UAAL,GAAkB,CAACC,OAAD,EAAUC,UAAV,KAAyB;EACzChzC,MAAAA,GAAG,CAACgD,cAAJ,GAAqB;EAAE,SAAC+vC,OAAD,GAAWC;EAAb,OAArB;EACD,KAFD,CAzG2B;;;EA8G3B,SAAKC,eAAL,GAAwBC,GAAD,IAAS;EAC9B,gEAAcC,YAAd,GAA6BD,GAA7B;EACA,YAAMn1C,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC2wC,EAAL,GAAU;EAAE0E,QAAAA,GAAG,EAAE,aAAa,0DAAcD;EAAlC,OAAV;;EACA,UAAI9lC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EACA,gEAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD,KARD;;EAUA,QAAIypB,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EAChCI,MAAAA,kBAAkB,6BAAC,IAAD,wBAAlB;EACD,KA3H0B;;;EA8H3B,SAAK+qB,oBAAL,GAA4B,MAAM;EAChC,YAAM5yB,QAAQ,GAAGwB,gBAAgB,EAAjC;EACA,aAAOloB,MAAM,CAACgV,IAAP,CAAY0R,QAAZ,EAAsB/kB,MAA7B;EACD,KAHD,CA9H2B;;;EAoI3B,SAAK43C,0BAAL,GAAkC,MAAM;EACtC,UAAI;EACF,cAAMC,cAAc,GAAG,KAAKC,sBAAL,EAAvB;EACA,cAAMC,MAAM,GAAG15C,MAAM,CAACgV,IAAP,CAAYwkC,cAAZ,EAA4B73C,MAA3C;EACA,eAAO+3C,MAAP;EACD,OAJD,CAIE,OAAOv1C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,wCAAwCpI,CAA3D;EACD;EACF,KARD,CApI2B;;;EA+I3B,SAAKw1C,mBAAL,GAA2B,MAAM;EAC/B,aAAOzxB,gBAAgB,EAAvB;EACD,KAFD,CA/I2B;;;EAoJ3B,SAAKuxB,sBAAL,GAA8B,MAAM;EAClC,UAAI;EACF,cAAM3xB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,cAAMwxB,MAAM,GAAG,EAAf;;EAEA,YAAI15C,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAAnC,EAAsC;EACpC,eAAK,MAAM+e,OAAX,IAAsBoH,QAAtB,EAAgC;EAC9B,gBAAIA,QAAQ,CAACpH,OAAD,CAAR,CAAkBY,MAAlB,KAA6B,CAAjC,EAAoC;EAClCo4B,cAAAA,MAAM,CAACh5B,OAAD,CAAN,GAAkBoH,QAAQ,CAACpH,OAAD,CAA1B;EACD;EACF;EACF;;EACD,eAAOg5B,MAAP;EACD,OAZD,CAYE,OAAOv1C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,oCAAoCpI,CAAvD;EACD;EACF,KAhBD,CApJ2B;;;EAuK3B,SAAKy1C,oBAAL,GAA6BC,SAAD,IAAe;EACzC,YAAM/xB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC2xB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C/xB,QAAQ,CAACrnB,cAAT,CAAwBo5C,SAAxB,CAAhD,EAAoF;EAClF,eAAO/xB,QAAQ,CAAC+xB,SAAD,CAAf;EACD,OAFD,MAEO;EACL,gEAAattC,KAAb,CAAmB,yCAAyCstC,SAA5D;EACD;EACF,KAPD,CAvK2B;EAiL3B;EACA;;;EACA,SAAKC,kBAAL,GAA2BD,SAAD,IAAe;EACvC,YAAM/xB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC2xB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C/xB,QAAQ,CAACrnB,cAAT,CAAwBo5C,SAAxB,CAAhD,EAAoF;EAClF,YAAI/xB,QAAQ,CAAC+xB,SAAD,CAAR,CAAoBv4B,MAApB,KAA+B,CAAnC,EAAsC;EACpCrb,UAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,iBAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2Bu0B,SAA3B,CAAP;EACA,gBAAME,aAAa,GAAGr1C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,cAAIogC,aAAJ,EAAmB;EACjBA,YAAAA,aAAa,CAAC/3B,SAAd,GAA0B/b,GAAG,CAAC0C,KAAJ,CAAU4c,eAApC;EACAw0B,YAAAA,aAAa,CAACx6B,KAAd,CAAoBZ,OAApB,GAA8B1Y,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B,GAAgC,MAAhC,GAAyC,MAAvE;EACD;EACF;;EACD,cAAMy0B,OAAO,GAAGt1C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAIujB,OAAJ,EAAa;EACX,gBAAM5xB,EAAE,GAAG4xB,OAAO,CAACj7B,UAAR,CAAmBpF,cAAnB,CAAkCkgC,SAAlC,CAAX;EACAzxB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;EACD;;EACD,eAAO0jB,QAAQ,CAAC+xB,SAAD,CAAf;EACArxB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAjBD,MAiBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyCstC,SAA5D;EACD;EACF,KAtBD;EAwBA;EACJ;EACA;EACA;;;EACI,SAAKI,oBAAL,GAA6BJ,SAAD,IAAe;EACzC,YAAM/xB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC2xB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4C/xB,QAAQ,CAACrnB,cAAT,CAAwBo5C,SAAxB,CAAhD,EAAoF;EAClF,YAAI/xB,QAAQ,CAAC+xB,SAAD,CAAR,CAAoBv4B,MAApB,KAA+B,CAAnC,EAAsC;EACpC,iBAAO,wDAAa/U,KAAb,CAAmB,2BAA2BstC,SAA9C,CAAP;EACD;;EACD,cAAMG,OAAO,GAAGt1C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAIujB,OAAJ,EAAa;EACX,gBAAM5xB,EAAE,GAAG4xB,OAAO,CAACj7B,UAAR,CAAmBpF,cAAnB,CAAkCkgC,SAAlC,CAAX;;EACA,cAAIzxB,EAAE,KAAK,IAAX,EAAiB;EACfA,YAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,QAAAA,QAAQ,CAAC+xB,SAAD,CAAR,CAAoBv4B,MAApB,GAA6B,CAA7B;EACA,cAAMy4B,aAAa,GAAGr1C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIogC,aAAJ,EAAmB;EACjB,cAAIhvB,OAAO,GAAG2M,QAAQ,CAACqiB,aAAa,CAAC/3B,SAAf,CAAR,GAAoC,CAAlD;EACA+3B,UAAAA,aAAa,CAAC/3B,SAAd,GAA0B+I,OAA1B;EACAgvB,UAAAA,aAAa,CAACx6B,KAAd,CAAoBZ,OAApB,GAA8BoM,OAAO,GAAG,CAAV,GAAc,MAAd,GAAuB,MAArD;EACD;;EACDnlB,QAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,UAAAA,KAAK,EAAEwJ,QAAQ,CAAC+xB,SAAD,CAAR,CAAoBt7B,OAA7B;EAAsCC,UAAAA,OAAO,EAAEsJ,QAAQ,CAAC+xB,SAAD,CAAR,CAAoBr7B;EAAnE,SAA1C;EACAvY,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,eAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2Bu0B,SAA3B,CAAP;EACArxB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAtBD,MAsBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyCstC,SAA5D;EACD;EACF,KA3BD;EA6BA;;;EACA,SAAKK,2BAAL,GAAoCC,UAAD,IAAgB;EACjD,UAAI5sC,KAAK,CAACC,OAAN,CAAc2sC,UAAd,CAAJ,EAA+B;EAC7B,aAAK,IAAIl/C,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGk/C,UAAU,CAACx4C,MAAjC,EAAyC1G,EAAE,EAA3C,EAA+C;EAC7C,eAAKg/C,oBAAL,CAA0BE,UAAU,CAACl/C,EAAD,CAApC;EACD;EACF;EACF,KAND;EAQA;EACJ;EACA;EACA;;;EACI,SAAKm/C,uBAAL,GAA+B,MAAM;EACnC,YAAMtyB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,YAAMmyB,SAAS,GAAG,KAAKZ,sBAAL,EAAlB;;EACA,UAAIz5C,MAAM,CAACgV,IAAP,CAAYqlC,SAAZ,EAAuB14C,MAAvB,GAAgC,CAApC,EAAuC;EACrC,cAAMqmB,MAAM,GAAGhoB,MAAM,CAACgV,IAAP,CAAYqlC,SAAZ,CAAf;EACAryB,QAAAA,MAAM,CAAC/S,OAAP,CAAe1T,GAAG,IAAI;EACpB,gBAAMy4C,OAAO,GAAGt1C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,cAAIujB,OAAJ,EAAa;EACX,kBAAM5xB,EAAE,GAAG4xB,OAAO,CAACj7B,UAAR,CAAmBpF,cAAnB,CAAkCpY,GAAlC,CAAX;;EACA,gBAAI6mB,EAAE,KAAK,IAAX,EAAiB;EACfA,cAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,UAAAA,QAAQ,CAACvmB,GAAD,CAAR,CAAc+f,MAAd,GAAuB,CAAvB;EACA1b,UAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,YAAAA,KAAK,EAAEwJ,QAAQ,CAACvmB,GAAD,CAAR,CAAcgd,OAAvB;EAAgCC,YAAAA,OAAO,EAAEsJ,QAAQ,CAACvmB,GAAD,CAAR,CAAckd;EAAvD,WAA1C;EACD,SAVD;EAWA,cAAMs7B,aAAa,GAAGr1C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIogC,aAAJ,EAAmB;EACjBA,UAAAA,aAAa,CAAC/3B,SAAd,GAA0B,CAA1B;EACA+3B,UAAAA,aAAa,CAACx6B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACD6J,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA7hB,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B;EACAtf,QAAAA,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,GAA6B,EAA7B;EACD,OArBD,MAqBO;EACL,gEAAa9d,KAAb,CAAmB,+BAAnB;EACD;EACF,KA3BD;;EA6BA,SAAKye,WAAL,GAAoB9hB,CAAD;EAAA;;EAAA,2BAAO8B,GAAG,CAAC0C,KAAX,+CAAO,WAAWsd,WAAX,CAAuB9hB,CAAvB,CAAP;EAAA,KAAnB,CAtR2B;;;EAyR3B,SAAKqb,wBAAL,GAAiCwY,MAAD,IAAY;EAC1CsiB,MAAAA,wBAAwB,CAACn8C,mBAAD,EAAsB65B,MAAtB,CAAxB;EACD,KAFD,CAzR2B;;;EA8R3B,SAAKrY,yBAAL,GAAkCqY,MAAD,IAAY;EAC3CsiB,MAAAA,wBAAwB,CAACl8C,oBAAD,EAAuB45B,MAAvB,CAAxB;EACD,KAFD;;EAIA,UAAMsiB,wBAAwB,GAAG,CAAC7rC,SAAD,EAAY8rC,WAAZ,KAA4B;EAC3D,UAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACj8B,KAAjC,EAAwC;EAAE;EAAQ;;EAClD,YAAMta,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAeM,SAAf;EACAzK,MAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,SAAC5Q,OAAD,GAAWq8C,WAAW,CAACj8B;EAAzB,OAAf;;EAEA,UAAIi8B,WAAW,CAAC/7B,OAAhB,EAAyB;EACvBxa,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,UAAAA,UAAU,EAAE87B,WAAW,CAAC/7B;EAA3C,SAAf;EACD;;EAED,UAAI+7B,WAAW,CAACpe,YAAhB,EAA8B;EAC5Bn4B,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmBqtB,UAAAA,YAAY,EAAEoe,WAAW,CAACpe;EAA7C,SAAf;EACD,OAb0D;;;EAgB3D,UAAIoe,WAAW,CAACn3B,EAAZ,IAAkBm3B,WAAW,CAACn3B,EAAZ,KAAmB,IAArC,IAA6Cm3B,WAAW,CAACn3B,EAAZ,KAAmBjiB,SAApE,EAA+E;EAC7E,aAAK,MAAMI,GAAX,IAAkBg5C,WAAW,CAACn3B,EAA9B,EAAkC;EAChC,cAAI7hB,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOg5C,WAAW,CAACn3B,EAAZ,CAAe7hB,GAAf;EAA1B,aAAf;EACD;EACF;EACF,OAtB0D;;;EAyB3D,UAAIg5C,WAAW,CAACvkB,OAAZ,IAAuBukB,WAAW,CAACvkB,OAAZ,KAAwB,IAA/C,IAAuDukB,WAAW,CAACvkB,OAAZ,KAAwB70B,SAAnF,EAA8F;EAC5F,aAAK,MAAMI,GAAX,IAAkBg5C,WAAW,CAACvkB,OAA9B,EAAuC;EACrC,cAAIz0B,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOg5C,WAAW,CAACvkB,OAAZ,CAAoBz0B,GAApB;EAA1B,aAAf;EACD;EACF;EACF;;EACD,gEAAcwN,YAAd,CAA2B/K,IAA3B;EACD,KAjCD;;EAmCA,SAAKw2C,WAAL,GAAoBC,CAAD,IAAO;EACxB,8DAAanH,QAAb,GAAwBoH,MAAM,CAACD,CAAD,CAA9B;;EACA,UAAIA,CAAC,KAAK,CAAV,EAAa;EACXjQ,QAAAA,cAAc,CAACmJ,MAAf,GAAwB,EAAxB;EACD,OAFD,MAEO;EACL,eAAOnJ,cAAc,CAACmJ,MAAtB;EACD;EACF,KAPD;EAQA;EACJ;EACA;EACA;;;EACI,SAAKgH,oBAAL,GAA4B,CAACp5C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD3C,iBAAxD;EACD,KAFD;;EAIA,SAAKq8C,oBAAL,GAA4B,CAACr5C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD1C,iBAAxD;EACD,KAFD;;EAIA,SAAKq8C,oBAAL,GAA4B,CAACt5C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaK,oBAAb,CAAkCja,GAAlC,EAAuCL,KAAvC,EAA8CzC,WAA9C;EACD,OAFD,MAEO;EACLiX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kEAAd;EACD;EACF,KAND;;EAQA,SAAKuuC,mBAAL,GAA2B,CAACv5C,GAAD,EAAML,KAAN,KAAgB;EACzC,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,6EAAd;EACD;EACF,KAND;;EAQA,SAAKwuC,oBAAL,GAA4B,CAACx5C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAd;EACD;EACF,KAND;;EAQA,SAAKyuC,sBAAL,GAA8B,CAACz5C,GAAD,EAAML,KAAN,KAAgB;EAC5C,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,gFAAd;EACD;EACF,KAND;;EAQA,SAAK0uC,uBAAL,GAA+B,CAAC15C,GAAD,EAAML,KAAN,KAAgB;EAC7C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACD;EACF,KAND;;EAQA,SAAK2uC,iBAAL,GAA0B35C,GAAD,IAAS;EAChC,WAAK4Z,OAAL,CAAakB,uBAAb,CAAqC9a,GAArC,EAA0C3C,cAA1C;EACD,KAFD;;EAIA,UAAMu8C,wBAAwB,GAAG,CAAChhC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,KAA0C;EACzEH,MAAAA,uBAAuB,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,8BAAuC,IAAvC,uDAAsD,IAAtD,wBAAvB;EACD,KAFD;EAIA;EACJ;EACA;EACA;EACA;EACA;EACA;;;EACI,SAAK+gC,WAAL,GAAmB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;EACrC;EACA,UAAKD,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAvB,IAAqCC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAA/D,EAA0E;EACxE5lC,QAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD;;EACD,UAAIy3B,GAAG,IAAIC,GAAX,EAAgB;EACd;EACA,YAAID,GAAG,IAAI,CAAC,EAAR,IAAcA,GAAG,GAAG,EAAxB,EAA4B;EAC1B3lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD,SALa;;;EAOd,YAAI03B,GAAG,IAAI,CAAC,GAAR,IAAeA,GAAG,GAAG,GAAzB,EAA8B;EAC5B5lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,mDAAZ;EACA;EACD;;EACD3d,QAAAA,GAAG,CAACF,QAAJ,GAAe;EAAEw1C,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAf;;EACA,gFAAuB;EAAEC,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAvB;EACD,OAbD,MAaO;EACL,YAAI93B,SAAS,CAACi4B,WAAd,EAA2B;EACzBj4B,UAAAA,SAAS,CAACi4B,WAAV,CAAsBC,kBAAtB,CAAyCC,YAAY,CAACvD,IAAb,CAAkB,IAAlB,CAAzC,EAAkEwD,SAAlE;EACD,SAFD,MAEO;EACLlmC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACD;EACF;EACF,KA1BD;;EA4BA,aAAS+3B,YAAT,CAAuBhnB,QAAvB,EAAiC;EAC/B,UAAI0mB,GAAG,GAAG1mB,QAAQ,CAACknB,MAAT,CAAgBC,QAA1B;EACA,UAAIR,GAAG,GAAG3mB,QAAQ,CAACknB,MAAT,CAAgBE,SAA1B;EACA91C,MAAAA,GAAG,CAACF,QAAJ,GAAe;EAAEw1C,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAf;;EACA,8EAAuB;EAAEC,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAvB;EACD;;EAED,aAASM,SAAT,CAAoBrvC,KAApB,EAA2B;EACzB,cAAQA,KAAK,CAACknC,IAAd;EACE,aAAKlnC,KAAK,CAACyvC,iBAAX;EACEtmC,UAAAA,OAAO,CAACkO,GAAR,CAAY,0CAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC0vC,oBAAX;EACEvmC,UAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC2vC,OAAX;EACExmC,UAAAA,OAAO,CAACkO,GAAR,CAAY,6CAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC4vC,aAAX;EACEzmC,UAAAA,OAAO,CAACkO,GAAR,CAAY,4BAAZ;EACA;EAZJ;EAcD;;EAED,UAAMw4B,GAAG,+BAAG,IAAH,aAAT;;EACAA,IAAAA,GAAG,CAACzD,MAAJ,GAAa,KAAKA,MAAlB;EACAyD,IAAAA,GAAG,CAACv/B,KAAJ,GAAY,KAAKA,KAAjB;;EACAu/B,IAAAA,GAAG,CAAC7iC,WAAJ,GAAkB,CAAC9D,UAAD,EAAa+D,YAAb,KAA8B;EAC9CD,MAAAA,WAAW,CAAC9D,UAAD,EAAa+D,YAAb,EAA2B,0DAAcoF,SAAzC,CAAX;EACD,KAFD;;EAGAw9B,IAAAA,GAAG,CAACC,aAAJ,GAAoB,CAAC1Z,OAAD,EAAUF,oBAAV,KAAmC;EACrDuG,MAAAA,YAAY,CAACvG,oBAAD,CAAZ;;EACA,WAAKnC,aAAL,CAAmBoC,cAAnB,CAAkCC,OAAlC,EAA2CF,oBAA3C;EACD,KAHD;;EAIA2Z,IAAAA,GAAG,CAACE,EAAJ,GAAUr7B,GAAD,IAAS;EAChB+oB,MAAAA,GAAG,CAAC/oB,GAAD,EAAM;EACPpW,QAAAA,MAAM,8BAAE,IAAF,uBADC;EAEPC,QAAAA,OAAO,8BAAE,IAAF,yBAFA;EAGPF,QAAAA,OAAO,8BAAE,IAAF,yBAHA;EAIPtJ,QAAAA,MAAM,8BAAE,IAAF;EAJC,OAAN,CAAH;EAMD,KAPD;;EAQA86C,IAAAA,GAAG,CAACpiC,OAAJ,GAAeC,OAAD,IAAa;EACzBD,MAAAA,OAAO,CAACC,OAAD,8BAAU,IAAV,wBAAP;EACD,KAFD;;EAGAmiC,IAAAA,GAAG,CAACG,eAAJ,GAAsB,MAAM;EAC1B,aAAQ,oEAAuB,CAA/B;EACD,KAFD;;EAGAH,IAAAA,GAAG,CAACI,QAAJ,GAAgBpiC,SAAD,IAAe;EAC5B+gC,MAAAA,wBAAwB,CAAC,GAAD,EAAM/gC,SAAN,CAAxB;EACD,KAFD;;EAGAgiC,IAAAA,GAAG,CAACK,QAAJ,GAAe,CAACriC,SAAD,EAAYsiC,UAAZ,KAA2B;EACxCvB,MAAAA,wBAAwB,CAAC,IAAD,EAAO/gC,SAAP,EAAkBsiC,UAAlB,CAAxB;EACD,KAFD;;EAGAN,IAAAA,GAAG,CAACO,UAAJ,GAAkBviC,SAAD,IAAe;EAC9B+gC,MAAAA,wBAAwB,CAAC,GAAD,EAAM/gC,SAAN,CAAxB;EACD,KAFD;;EAGAgiC,IAAAA,GAAG,CAACQ,gBAAJ,GAAwBxiC,SAAD,IAAe;EACpCnU,MAAAA,GAAG,CAACwC,WAAJ,GAAkB,EAAlB;EACA,YAAM4wB,QAAQ,GAAG30B,QAAQ,CAACqP,sBAAT,CAAgC,2BAAhC,CAAjB;;EAEA,WAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6oB,QAAQ,CAAC13B,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,cAAM0hB,OAAO,GAAGmH,QAAQ,CAAC7oB,CAAD,CAAxB;;EACA,YAAI0hB,OAAO,CAAC3tB,IAAZ,EAAkB;EAChB,gBAAMP,IAAI,GAAG;EAAEO,YAAAA,IAAI,EAAE2tB,OAAO,CAAC3tB,IAAhB;EAAsBs4C,YAAAA,cAAc,EAAE3qB,OAAO,CAAC4qB;EAA9C,WAAb;EACA72C,UAAAA,GAAG,CAACwC,WAAJ,CAAgBiB,IAAhB,CAAqB1F,IAArB;EACD;EACF;;EAEDm3C,MAAAA,wBAAwB,CAACp9C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAbD;;EAcAgiC,IAAAA,GAAG,CAACW,qBAAJ,GAA6B77C,KAAD,IAAW;EACrC+E,MAAAA,GAAG,CAACwC,WAAJ,GAAkBvH,KAAlB;EACD,KAFD;;EAGAk7C,IAAAA,GAAG,CAACY,qBAAJ,GAA4B,MAAM;EAChC,aAAO/2C,GAAG,CAACwC,WAAX;EACD,KAFD;;EAGA2zC,IAAAA,GAAG,CAACa,wBAAJ,GAA+B,CAAC7iC,SAAD,EAAY8iC,aAAZ,KAA8B;EAC3Dd,MAAAA,GAAG,CAACW,qBAAJ,CAA0BG,aAA1B;;EACA/B,MAAAA,wBAAwB,CAACp9C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAHD;;EAIAgiC,IAAAA,GAAG,CAACe,mBAAJ,GAA0B,MAAM;EAC9B,aAAOl3C,GAAG,CAAC+C,iBAAX;EACD,KAFD;;EAGAozC,IAAAA,GAAG,CAACgB,sBAAJ,GAA8Bl8C,KAAD,IAAW;EACtC+E,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB9H,KAAxB;EACD,KAFD;;EAGAk7C,IAAAA,GAAG,CAACiB,sBAAJ,GAA8BliC,OAAD,IAAa;EACxC,UAAIA,OAAO,CAACnd,eAAD,CAAX,EAA8B;EAC5BiI,QAAAA,GAAG,CAACyC,mBAAJ,GAA0ByS,OAAO,CAACnd,eAAD,CAAjC;EACD;EACF,KAJD;;EAKA4H,IAAAA,MAAM,CAAC03C,QAAP,GAAkB13C,MAAM,CAAC23C,QAAP,GAAkBnB,GAApC;;EAEA,+BAAIzoC,SAAS,CAACV,OAAd,wDAAI,oBAAoB,CAApB,EAAuBhY,EAA3B,EAA+B;EAAA;;EAC7B;EACA;EACA;EACAuI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,yBAA4C+W,SAAS,CAACV,OAAtD,wDAA4C,oBAAoB,CAApB,EAAuBhY,EAAnE;EACA,WAAKosB,IAAL;EACD;EACF,GA5jB4B;;;EA+jB7BA,EAAAA,IAAI,CAAEhsB,SAAF,EAAaH,MAAb,EAAqBC,YAArB,EAAmCC,KAAnC,EAA4D;EAAA,QAAlBk9B,WAAkB,uEAAJ,EAAI;;EAC9D,QAAIt4B,MAAM,CAACgV,IAAP,CAAYsjB,WAAZ,EAAyB32B,MAAzB,GAAkC,CAAtC,EAAyC;EACvC02B,MAAAA,cAAc,CAACC,WAAD,CAAd;EACD;;EACD,QAAI,oEAAuB,CAA3B,EAA8B;EAC5B;EACA;EACD;;EAED90B,IAAAA,cAAc,CAACc,YAAf,CAA4B,QAA5B,EAAsCsB,MAAM,CAACG,QAAP,CAAgBC,QAAtD;;EACA,QAAI,CAAC,0DAAc/K,EAAnB,EAAuB;EACrB,UAAI,CAACI,SAAL,EAAgB;EACd,gEAAakR,KAAb,CAAmBG,WAAnB;;EACA;EACD;;EACD,gEAAczR,EAAd,GAAmBI,SAAnB;EACAmI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,EAA4CvB,SAA5C;;EACA,8DAAamM,KAAb,CAAmB,qCAAqC,0DAAcvM,EAAtE;EACD;;EACDg4B,IAAAA,gBAAgB,6BAAC,IAAD,yBAAe,0DAAch4B,EAA7B,CAAhB;EACA6jC,IAAAA,mCAAmC,6BAAC,IAAD,wBAAnC;EACA,8DAAcxhB,UAAd,GAA2B/gB,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAAhE;;EAEA,QAAIC,MAAJ,EAAY;EACV,gEAAcA,MAAd,GAAuBA,MAAvB;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,gEAAcA,YAAd,GAA6BA,YAA7B;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,gEAAcA,KAAd,GAAsBA,KAAtB;EACD;;EAED,UAAMoiD,YAAY,GAAGz3C,QAAQ,CAAC6J,IAA9B;EACA,UAAMV,SAAS,GAAGF,YAAY,CAACwuC,YAAY,CAAC7hC,WAAb,EAAD,CAA9B,CAlC8D;;EAqC9D,QAAI,OAAOzM,SAAS,CAAC/K,CAAjB,KAAuB,WAAvB,IAAsC+K,SAAS,CAACuuC,OAAV,IAAqB,GAA/D,EAAoE;EAClE;EACD;;EAEDx3C,IAAAA,GAAG,CAAC2C,kBAAJ,GAAyB,IAAzB;;EACA,QAAI3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,WAAK+2C,OAAL,CAAahvC,IAAb,CAAkBzD,GAAG,CAAC4C,YAAtB;EACD;;EAED;;EACA,SAAK60C,WAAL;EACA,UAAMC,cAAc,GAAG1uB,WAAW,CAAC,MAAM;EACvC,UAAI,wDAAarnB,OAAjB,EAA0B;EACxBsnB,QAAAA,aAAa,CAACyuB,cAAD,CAAb;;EACA,kEAAcxxC,mBAAd;EACD;EACF,KALiC,EAK/B,IAL+B,CAAlC;;EAMA,oCAAI,IAAJ,mBAAiB;EACf;EACAzH,MAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EAEA;;EACArZ,MAAAA,MAAM,CAACqZ,gBAAP,CAAwB,UAAxB,8BAAoC,IAApC;EACD,KAND,MAMO;EACL;EACAva,MAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;;EACD,sEAAqB,CAArB;EACD,GAhoB4B;EAmoB7B;;;EAmEAg2B,EAAAA,WAAW,GAAI;EACb,UAAMF,YAAY,GAAG53C,MAAM,CAACG,QAAP,CAAgB6J,IAArC;EACA,UAAMV,SAAS,GAAGF,YAAY,CAACwuC,YAAY,CAAC7hC,WAAb,EAAD,CAA9B,CAFa;;EAIb,UAAMpb,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACA,QAAImyC,OAAO,GAAI,OAAOr9C,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAvD;EACAla,IAAAA,GAAG,CAACka,CAAJ,GAAQ,EAAEmjC,OAAV;;EACA,8DAAc3xC,sBAAd,CAAqC1L,GAArC,EAPa;;;EAUb,QAAIyD,IAAI,GAAG,EAAX;EACA,QAAI65C,cAAc,GAAGpuC,SAAS,CAAC/K,QAAQ,CAACo5C,QAAV,CAA9B;;EAEA,QAAIl4C,MAAM,CAACG,QAAP,CAAgBC,QAAhB,KAA6B63C,cAAjC,EAAiD;EAC/C,YAAME,MAAM,GAAG,GAAf;;EACA,UAAIF,cAAc,KAAK,EAAvB,EAA2B;EACzBA,QAAAA,cAAc,GAAGA,cAAc,CAACl8C,MAAf,GAAwBo8C,MAAxB,GAAiCF,cAAc,CAACj8C,SAAf,CAAyB,CAAzB,EAA4Bm8C,MAA5B,CAAjC,GAAuEF,cAAxF;EACA75C,QAAAA,IAAI,CAAC85C,QAAL,GAAgBD,cAAhB;EACD;;EAED,UAAIG,SAAS,GAAG9uC,SAAS,CAAC+uC,UAAV,IAAwB/uC,SAAS,CAACgvC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACr8C,MAAV,GAAmBo8C,MAAnB,GAA4BC,SAAS,CAACp8C,SAAV,CAAoB,CAApB,EAAuBm8C,MAAvB,CAA5B,GAA6DC,SAAzE;EACAh6C,QAAAA,IAAI,CAACm6C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,SAAS,GAAGlvC,SAAS,CAACmvC,UAAV,IAAwBnvC,SAAS,CAACovC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACz8C,MAAV,GAAmBo8C,MAAnB,GAA4BK,SAAS,CAACx8C,SAAV,CAAoB,CAApB,EAAuBm8C,MAAvB,CAA5B,GAA6DK,SAAzE;EACAp6C,QAAAA,IAAI,CAACu6C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,WAAW,GAAGtvC,SAAS,CAACuvC,YAAV,IAA0BvvC,SAAS,CAACwvC,aAAtD;;EACA,UAAI,OAAOF,WAAP,KAAuB,WAA3B,EAAwC;EACtCA,QAAAA,WAAW,GAAGA,WAAW,CAAC78C,MAAZ,GAAqBo8C,MAArB,GAA8BS,WAAW,CAAC58C,SAAZ,CAAsB,CAAtB,EAAyBm8C,MAAzB,CAA9B,GAAiES,WAA/E;EACAx6C,QAAAA,IAAI,CAAC26C,EAAL,GAAUH,WAAV,CAFsC;EAGvC,OAvB8C;;;EA0B/C,UAAI,OAAOtvC,SAAS,CAACovC,WAAjB,KAAiC,WAArC,EAAkD;EAChD,cAAMM,EAAE,GAAG1vC,SAAS,CAACovC,WAArB;;EACA,YAAIM,EAAE,CAACxvC,KAAH,CAAS,2BAAT,CAAJ,EAA2C;EACzCpL,UAAAA,IAAI,CAAC46C,EAAL,GAAUA,EAAV,CADyC;EAE1C;EACF;EACF;;EAED56C,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA6C,IAAAA,IAAI,CAAC66C,GAAL,GAAWrB,YAAX;EAEAx5C,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;;EACA,QAAIrC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,8DAAc4f,QAAd,CAAuBrX,IAAvB,EApDa;;;EAsDb,QAAI0zB,QAAQ,CAAC1zB,IAAI,CAAC0wC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,gFAAwB1wC,IAAxB;EACD;;EACDsP,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,8DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EAEA,QAAIyvB,QAAQ,CAAC1zB,IAAI,CAAC0wC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,WAAK/gB,KAAL,CAAWjqB,IAAX,CAAgBvK,UAAhB,EAA4B;EAAE6M,QAAAA,CAAC,EAAE;EAAL,OAA5B;EACD;;EAED,oEAAoBwxC,YAApB;EACA9pC,IAAAA,UAAU,CAAC,MAAM;EACf,UAAIkqC,OAAO,IAAI,CAAf,EAAkB;EAChB;EACA;EACD;;EAED,sCAAI,IAAJ,2CAA8B;EAC5B3uB,QAAAA,WAAW,CAAC,MAAM;EAChB;EACD,SAFU,EAERnxB,8BAFQ,CAAX;EAGD;EACF,KAXS,EAWPD,yBAXO,CAAV;;EAaA;EACD;;EAgBDy6C,EAAAA,wBAAwB,GAAI;EAC1B,WAAO90C,cAAc,CAACE,wBAAf,MAA6C,KAAK20C,qBAAzD;EACD;;EAWD;EACA,MAAIxI,aAAJ,CAAmB+H,QAAnB,EAA6B;EAC3B,SAAKhI,cAAL,CAAoB,KAAKT,kBAAzB,IAA+CyI,QAA/C;EACD;EAED;EACF;EACA;EACA;;;EA8BE;;EACA;EACF;EACA;EACA;EACA;EAEEkH,EAAAA,UAAU,CAAEC,GAAF,EAAO;EACf,QAAI,OAAOA,GAAP,KAAe,SAAnB,EAA8B;EAC5BrpC,MAAAA,OAAO,CAACnJ,KAAR,CAAc,0DAAd;EACA;EACD,KAJc;EAMf;;;EACA,QAAItG,GAAG,CAAC6C,OAAJ,KAAgBi2C,GAAhB,IAAuB,CAACA,GAA5B,EAAiC;EAC/B,gEAAc5yC,mBAAd;EACD;;EACDlG,IAAAA,GAAG,CAAC6C,OAAJ,GAAci2C,GAAd;EACD;;EAEDC,EAAAA,aAAa,GAAI;EACf,WAAO,iBAAP;EACD;;EAEDC,EAAAA,cAAc,CAAE16C,IAAF,EAAQuxC,YAAR,EAAsB;EAClC,WAAOD,QAAQ,CAAC/lB,MAAT,CAAgBvrB,IAAhB,EAAsBuxC,YAAtB,8BAAoC,IAApC,sCAAP;EACD;;EAEDoB,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,wDAAa9D,QAAb,KAA0B,CAA9B,EAAiC;EAC/B,aAAO,sEAAoB4D,aAApB,CAAkCC,aAAlC,EAAiDC,aAAjD,CAAP;EACD,KAFD,MAEO;EACL,YAAMh0C,CAAC,GAAG,+BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;EACF;;EAEDq0C,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,0EAAoBD,cAApB,CAAmCC,eAAnC;EACD;;EAEDC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,0EAAoBD,2BAApB,CAAgDC,QAAhD;EACD;;EAEDC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,0EAAoBC,kCAApB,CAAuDD,QAAvD;EACD;;EA14B4B;;yDAooBR;EACnB,OAAKa,WAAL,CAAiBxqC,iBAAjB;;EACA,OAAKyqC,OAAL,CAAazqC,iBAAb;;EACA,OAAK0lB,KAAL,CAAW1lB,iBAAX;;EACA,OAAKkN,OAAL,CAAalN,iBAAb;;EACA,OAAKqyB,aAAL,CAAmBryB,iBAAnB;EACD;;uCAEUkxB,MAAkB;EAAA,MAAZyM,KAAY,uEAAJ,EAAI;EAC3B,MAAIsT,OAAJ;EACA,SAAO,YAAY;EACjB9iB,IAAAA,YAAY,CAAC8iB,OAAD,CAAZ;EACAA,IAAAA,OAAO,GAAGxrC,UAAU,CAACyrB,IAAD,EAAOyM,KAAP,CAApB;EACD,GAHD;EAID;;yDAEoB;EACnB,QAAMuT,oBAAoB,+BAAG,IAAH,wBAAkB,MAAM;EAChD,QAAI,kEAAsBp5C,QAAQ,CAAC6J,IAAnC,EAAyC;EACvC,WAAK8tC,WAAL;EACD;EACF,GAJyB,CAA1B;;EAKAyB,EAAAA,oBAAoB;EACrB;;+EAE+B;EAC9B,MAAI;EACF,oCAAI,IAAJ,+CAA+B;EAC7B/iB,MAAAA,YAAY,6BAAC,IAAD,8CAAZ;EACD;;EAED,UAAM2d,aAAa,GAAGr1C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,QAAI,CAACogC,aAAL,EAAoB;EAClB,8DAAavyC,KAAb,CAAmB,yBAAnB;;EACA;EACD;EAED;;;EACAuyC,IAAAA,aAAa,CAACx6B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EAEA;;EACA,oFAA4BjL,UAAU,CAAC,MAAM;EAC3C,YAAM+M,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,YAAMiqB,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAxB,aAAwBA,MAAxB,uBAAwBA,MAAM,CAAEgF,aAAhC,CAAlB;EACA;;EACA,YAAMs0B,aAAa,GAAGr1C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EAEA,UAAI,CAACogC,aAAL,EAAoB;EAClB,gEAAavyC,KAAb,CAAmB,yBAAnB;;EACA;EACD;;EAED,UAAIshB,SAAJ,EAAe;EACb,cAAM;EAAEC,UAAAA,GAAF;EAAOC,UAAAA;EAAP,YAAiBF,SAAS,CAACG,qBAAV,EAAvB;;EACA,YAAIyxB,MAAM,CAACX,aAAa,CAAC/3B,SAAf,CAAN,GAAkC,CAAlC,IAAuC+3B,aAAa,CAAC/3B,SAAd,KAA4B,IAAvE,EAA6E;EAC3E+3B,UAAAA,aAAa,CAACx6B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACDo7B,QAAAA,aAAa,CAACx6B,KAAd,CAAoBwJ,GAApB,aAA6BA,GAAG,GAAG,CAAnC;EACAgxB,QAAAA,aAAa,CAACx6B,KAAd,CAAoB2J,IAApB,aAA8BF,KAAK,GAAG,CAAtC;EACD;EACF,KAnBqC,EAmBnCzpB,4BAnBmC,CAAtC;EAoBD,GAnCD,CAmCE,OAAOgN,KAAP,EAAc;EACd,4DAAa/E,KAAb,CAAmB,yCAAnB,EAA8D+E,KAA9D;EACD;EACF;;+CAqFe;EACd,MAAI+G,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,MAAIuI,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACAmS,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB5V,QAAtB,CAAtB;EACA4V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,4DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;yDAEoB;EACnB,SAAQ,OAAOrC,MAAM,CAACw5C,MAAd,KAAyB,WAAzB,IAAwCx5C,MAAM,CAACw5C,MAAP,CAAcC,IAAd,KAAuB,YAAvE;EACD;;yDAMmBr7C,MAAM;EACxB,MAAI,KAAKs0C,wBAAL,EAAJ,EAAqC;EACnCt0C,IAAAA,IAAI,CAACgxC,KAAL,GAAa,IAAb;EACD;EACF;;uDAckB9xB,SAAS;EAC1B;EACA,MAAIlf,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,CAAC2wC,EAAL,GAAU,EAAV;EACA,QAAMj+B,UAAU,GAAG,EAAnB;EACA1S,EAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,MAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,IAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,EAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;;EACA,MAAIwM,OAAJ,EAAa;EACX,UAAMlO,IAAI,GAAGhV,MAAM,CAACgV,IAAP,CAAYkO,OAAZ,CAAb;EACAlO,IAAAA,IAAI,CAACC,OAAL,CAAa1T,GAAG,IAAI;EAClByC,MAAAA,IAAI,CAAC2wC,EAAL,CAAQpzC,GAAR,IAAe2hB,OAAO,CAAC3hB,GAAD,CAAtB;EACD,KAFD;EAGD;;EACD,MAAI0E,GAAG,CAACF,QAAR,EAAkB;EAChB/B,IAAAA,IAAI,CAAC2wC,EAAL,GAAU,EAAE,GAAG3wC,IAAI,CAAC2wC,EAAV;EAAc,SAAG1uC,GAAG,CAACF;EAArB,KAAV;EACD;;EACD/B,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,4DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,QAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,MAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,4DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;QCv4BG0L,SAAS,GAAG,IAAI2rC,SAAJ,CAAc15C,MAAM,CAAC+N,SAArB;EAElB/N,MAAM,CAAC+N,SAAP,GAAmB/N,MAAM,CAACgO,SAAP,GAAmBD,SAAtC;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId, preview: isPreview, url, divSelector} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n if (isPreview) {\n renderPreviewIframe(url, divSelector, divId, html)\n return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\nconst renderPreviewIframe = async (url, divSelector, divId, html) => {\n const containerElement = document.querySelector(divSelector)\n console.log('containerElement', containerElement)\n containerElement.style.height = 'calc(100% - 52px)'\n if (!containerElement) {\n console.error(`No element found for selector: ${ divSelector }`)\n return\n }\n\n const response = await fetch(url)\n if (!response.ok || !response.body) {\n return\n }\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let htmlString = ''\n while (true) {\n const {done, value} = await reader.read()\n if (done) break\n htmlString += decoder.decode(value, {stream: true})\n }\n htmlString += decoder.decode()\n const iframe = document.createElement('iframe')\n iframe.srcdoc = htmlString\n iframe.width = '100%'\n iframe.height = '100%'\n iframe.sandbox = 'allow-scripts allow-same-origin'\n iframe.id = 'wiz-custom-html-preview'\n\n console.log('iframe', iframe)\n\n containerElement.innerHTML = ''\n containerElement.appendChild(iframe)\n\n // findIframeElement(() => {\n // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n // if (divInsideIframe) {\n // processElement(divInsideIframe, html)\n // console.log('Found div inside iframe:', divInsideIframe);\n // } else {\n // console.warn('No div found inside iframe.');\n // }\n // });\n iframe.onload = function () {\n console.log('iframe onload')\n findIframeElement(divId, html, iframe)\n }\n}\n\nconst findIframeElement = (divId, html, iframeElement) => {\n console.log('findIframeElement divId', divId)\n console.log('findIframeElement html', html)\n console.log('findIframeElement iframeElement', iframeElement)\n let count = 0\n const intervalId = setInterval(() => {\n console.log('count', count)\n if (iframeElement && iframeElement.contentDocument) {\n const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n if (divInsideIframe) {\n processElement(divInsideIframe, html)\n clearInterval(intervalId)\n // callback();\n }\n } else if (++count >= 20) {\n clearInterval(intervalId)\n console.warn('Iframe element not found after 20 attempts.')\n }\n }, 500)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n // const parentWindowUrl = event.origin\n // if (!parentWindowUrl.includes('clevertap')) {\n // return\n // }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData.inapp_notifs)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n // const display = inAppNotifs[0].display\n console.log('msgContent', eventData.inapp_notifs[0].msgContent)\n if (eventData && msgContent['template-type'] === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs)\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index ecfab4d4..90575a7f 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","preview","renderPreviewIframe","containerElement","response","fetch","ok","reader","getReader","decoder","TextDecoder","htmlString","done","stream","iframe","srcdoc","sandbox","findIframeElement","iframeElement","contentDocument","divInsideIframe","warn","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","method","headers","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n // const { divId, preview: isPreview, url, divSelector } = display || {}\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n // if (isPreview) {\n // renderPreviewIframe(url, divSelector, divId, html)\n // return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n // }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\n// const renderPreviewIframe = async (url, divSelector, divId, html) => {\n// const containerElement = document.querySelector(divSelector)\n// console.log('containerElement', containerElement)\n// containerElement.style.height = 'calc(100% - 52px)'\n// if (!containerElement) {\n// console.error(`No element found for selector: ${divSelector}`)\n// return\n// }\n\n// const response = await fetch(url)\n// if (!response.ok || !response.body) {\n// return\n// }\n// const reader = response.body.getReader()\n// const decoder = new TextDecoder()\n// let htmlString = ''\n// while (true) {\n// const { done, value } = await reader.read()\n// if (done) break\n// htmlString += decoder.decode(value, { stream: true })\n// }\n// htmlString += decoder.decode()\n// const iframe = document.createElement('iframe')\n// iframe.srcdoc = htmlString\n// iframe.width = '100%'\n// iframe.height = '100%'\n// iframe.sandbox = 'allow-scripts allow-same-origin'\n// iframe.id = 'wiz-custom-html-preview'\n\n// console.log('iframe', iframe)\n\n// containerElement.innerHTML = ''\n// containerElement.appendChild(iframe)\n\n// // findIframeElement(() => {\n// // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n// // if (divInsideIframe) {\n// // processElement(divInsideIframe, html)\n// // console.log('Found div inside iframe:', divInsideIframe);\n// // } else {\n// // console.warn('No div found inside iframe.');\n// // }\n// // });\n// iframe.onload = function () {\n// console.log('iframe onload')\n// findIframeElement(divId, html, iframe)\n// }\n// }\n\n// const findIframeElement = (divId, html, iframeElement) => {\n// console.log('findIframeElement divId', divId)\n// console.log('findIframeElement html', html)\n// console.log('findIframeElement iframeElement', iframeElement)\n// let count = 0\n// const intervalId = setInterval(() => {\n// console.log('count', count)\n// if (iframeElement && iframeElement.contentDocument) {\n// const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n// if (divInsideIframe) {\n// processElement(divInsideIframe, html)\n// clearInterval(intervalId)\n// // callback();\n// }\n// } else if (++count >= 20) {\n// clearInterval(intervalId)\n// console.warn('Iframe element not found after 20 attempts.')\n// }\n// }, 500)\n// }\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n // const parentWindowUrl = event.origin\n // if (!parentWindowUrl.includes('clevertap')) {\n // return\n // }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData.inapp_notifs)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n // const display = inAppNotifs[0].display\n console.log('msgContent', eventData.inapp_notifs[0].msgContent)\n if (eventData && msgContent['template-type'] === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs)\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 90575a7f..bc1fe590 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n,preview:r,url:s,divSelector:a}=t||{},l=t.details[0].html;if(!n||!l)return void console.error("No div Id or no html found");if(r)return void bi(s,a,n,l);let c=!1;const d={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(c||(c=!0,window.clevertap.renderNotificationViewed(d)),vi(o,l),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=async(e,t,i,o)=>{const n=document.querySelector(t);if(console.log("containerElement",n),n.style.height="calc(100% - 52px)",!n)return void console.error("No element found for selector: ".concat(t));const r=await fetch(e);if(!r.ok||!r.body)return;const s=r.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:e,value:t}=await s.read();if(e)break;l+=a.decode(t,{stream:!0})}l+=a.decode();const c=document.createElement("iframe");c.srcdoc=l,c.width="100%",c.height="100%",c.sandbox="allow-scripts allow-same-origin",c.id="wiz-custom-html-preview",console.log("iframe",c),n.innerHTML="",n.appendChild(c),c.onload=function(){console.log("iframe onload"),mi(i,o,c)}},mi=(e,t,i)=>{console.log("findIframeElement divId",e),console.log("findIframeElement html",t),console.log("findIframeElement iframeElement",i);let o=0;const n=setInterval((()=>{if(console.log("count",o),i&&i.contentDocument){var r;const o=null===(r=i.contentDocument)||void 0===r?void 0:r.querySelector(e);o&&(vi(o,t),clearInterval(n))}else++o>=20&&(clearInterval(n),console.warn("Iframe element not found after 20 attempts."))}),500)},yi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},wi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},Ci=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n // const { divId, preview: isPreview, url, divSelector } = display || {}\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n // if (isPreview) {\n // renderPreviewIframe(url, divSelector, divId, html)\n // return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n // }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\n// const renderPreviewIframe = async (url, divSelector, divId, html) => {\n// const containerElement = document.querySelector(divSelector)\n// console.log('containerElement', containerElement)\n// containerElement.style.height = 'calc(100% - 52px)'\n// if (!containerElement) {\n// console.error(`No element found for selector: ${divSelector}`)\n// return\n// }\n\n// const response = await fetch(url)\n// if (!response.ok || !response.body) {\n// return\n// }\n// const reader = response.body.getReader()\n// const decoder = new TextDecoder()\n// let htmlString = ''\n// while (true) {\n// const { done, value } = await reader.read()\n// if (done) break\n// htmlString += decoder.decode(value, { stream: true })\n// }\n// htmlString += decoder.decode()\n// const iframe = document.createElement('iframe')\n// iframe.srcdoc = htmlString\n// iframe.width = '100%'\n// iframe.height = '100%'\n// iframe.sandbox = 'allow-scripts allow-same-origin'\n// iframe.id = 'wiz-custom-html-preview'\n\n// console.log('iframe', iframe)\n\n// containerElement.innerHTML = ''\n// containerElement.appendChild(iframe)\n\n// // findIframeElement(() => {\n// // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n// // if (divInsideIframe) {\n// // processElement(divInsideIframe, html)\n// // console.log('Found div inside iframe:', divInsideIframe);\n// // } else {\n// // console.warn('No div found inside iframe.');\n// // }\n// // });\n// iframe.onload = function () {\n// console.log('iframe onload')\n// findIframeElement(divId, html, iframe)\n// }\n// }\n\n// const findIframeElement = (divId, html, iframeElement) => {\n// console.log('findIframeElement divId', divId)\n// console.log('findIframeElement html', html)\n// console.log('findIframeElement iframeElement', iframeElement)\n// let count = 0\n// const intervalId = setInterval(() => {\n// console.log('count', count)\n// if (iframeElement && iframeElement.contentDocument) {\n// const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n// if (divInsideIframe) {\n// processElement(divInsideIframe, html)\n// clearInterval(intervalId)\n// // callback();\n// }\n// } else if (++count >= 20) {\n// clearInterval(intervalId)\n// console.warn('Iframe element not found after 20 attempts.')\n// }\n// }, 500)\n// }\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n // const parentWindowUrl = event.origin\n // if (!parentWindowUrl.includes('clevertap')) {\n // return\n // }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData.inapp_notifs)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n // const display = inAppNotifs[0].display\n console.log('msgContent', eventData.inapp_notifs[0].msgContent)\n if (eventData && msgContent['templateType'] === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs)\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":";;;;;;;;;;;;;;;;;;;;EAAO,MAAMA,aAAa,GAAG,oBAAtB;EACA,MAAMC,eAAe,GAAG,QAAxB;EACA,MAAMC,cAAc,GAAG,KAAvB;;;;;;;;;;;;ECAQ,MAAMC,OAAN,CAAc;EAO3BC,EAAAA,WAAW,GAAsE;EAAA,QAApE;EAAEC,MAAAA;EAAF,KAAoE,uEAA3D,EAA2D;EAAA,QAAvDC,MAAuD,uEAA9C,EAA8C;EAAA,QAA1CC,YAA0C,uEAA3BP,aAA2B;EAAA,QAAZQ,KAAY,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aALvE;EAKuE;EAAA;EAAA;EAAA,aAJjER;EAIiE;EAAA;EAAA;EAAA,aAHjE;EAGiE;EAAA;EAAA;EAAA,aAFxE;EAEwE;EAC/E,SAAKK,EAAL,GAAUA,EAAV;;EACA,QAAIC,MAAJ,EAAY;EACV,WAAKA,MAAL,GAAcA,MAAd;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,WAAKA,YAAL,GAAoBA,YAApB;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,WAAKA,KAAL,GAAaA,KAAb;EACD;EACF;;EAED,MAAIH,EAAJ,GAAU;EACR,uCAAO,IAAP;EACD;;EAED,MAAIA,EAAJ,CAAQI,SAAR,EAAmB;EACjB,gEAAkBA,SAAlB;EACD;;EAED,MAAIH,MAAJ,GAAc;EACZ,uCAAO,IAAP;EACD;;EAED,MAAIA,MAAJ,CAAYA,MAAZ,EAAoB;EAClB,0DAAeA,MAAf;EACD;;EAED,MAAII,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIH,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIC,KAAJ,GAAa;EACX,uCAAO,IAAP;EACD;;EAED,MAAIA,KAAJ,CAAWA,KAAX,EAAkB;EAChB,wDAAcA,KAAd;EACD;;EAED,MAAIG,iBAAJ,GAAyB;EACvB,QAAI,KAAKL,MAAT,EAAiB;EACf,uBAAU,KAAKA,MAAf,cAAyB,KAAKC,YAA9B;EACD,KAFD,MAEO;EACL,UAAI,KAAKA,YAAL,KAAsBP,aAA1B,EAAyC;EACvC,yBAAUE,cAAV,cAA4B,KAAKK,YAAjC;EACD;;EACD,aAAO,KAAKA,YAAZ;EACD;EACF;;EAED,MAAIK,aAAJ,GAAqB;EACnB,qBAAUX,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIE,WAAJ,GAAmB;EACjB,qBAAUZ,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIG,WAAJ,GAAmB;EACjB,qBAAUb,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAII,QAAJ,GAAgB;EACd,qBAAUd,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EArF0B;;ECFtB,MAAMK,uBAAuB,GAAG,IAAIC,MAAJ,CAAW,qCAAX,EAAkD,GAAlD,CAAhC;EACA,MAAMC,yBAAyB,GAAG,IAAID,MAAJ,CAAW,wBAAX,EAAqC,GAArC,CAAlC;EAEA,MAAME,gBAAgB,GAAG,IAAIF,MAAJ,CAAW,IAAX,EAAiB,GAAjB,CAAzB;EACA,MAAMG,KAAK,GAAG,OAAd;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,qBAAqB,GAAG,iBAA9B;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,gBAAgB,GAAG,WAAzB;EACA,MAAMC,aAAa,GAAG,aAAtB;;EACA,MAAMC,cAAc,GAAG,QAAvB;EACA,MAAMC,wBAAwB,GAAG,KAAK,EAAtC;;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,WAAW,GAAG,WAApB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,UAAU,GAAG,iBAAnB;EACA,MAAMC,UAAU,GAAG,UAAnB;EACA,MAAMC,YAAY,GAAG,QAArB;EAEA,MAAMC,MAAM,GAAG,QAAf;EAEA,MAAMC,OAAO,GAAG,SAAhB;EAEA,MAAMC,cAAc,GAAG,UAAvB;EACA,MAAMC,UAAU,GAAG,QAAnB;EACA,MAAMC,aAAa,GAAG,WAAtB;EACA,MAAMC,sBAAsB,GAAG,KAA/B;EACA,MAAMC,SAAS,GAAG,OAAlB;EACA,MAAMC,SAAS,GAAG,QAAlB;EACA,MAAMC,cAAc,GAAG,GAAvB;EACA,MAAMC,MAAM,GAAG,OAAf;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,aAAa,GAAG,QAAQ,GAA9B;;EACA,MAAMC,SAAS,GAAG,GAAlB;;EACA,MAAMC,yBAAyB,GAAG,IAAI,EAAJ,GAAS,IAA3C;;EACA,MAAMC,8BAA8B,GAAG,IAAI,EAAJ,GAAS,IAAhD;;EACA,MAAMC,6BAA6B,GAAG,GAAtC;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,WAAW,GAAG,OAApB;EACA,MAAMC,OAAO,GAAG,SAAhB;EACA,MAAMC,mBAAmB,GAAG,qBAA5B;EACA,MAAMC,oBAAoB,GAAG,sBAA7B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,eAAe,GAAG,mBAAxB;EACA,MAAMC,QAAQ,GAAG,YAAjB;EACA,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,aAAa,GAAG,IAAtB;EACA,MAAMC,mBAAmB,GAAG,OAAO,EAAP,GAAY,EAAxC;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,cAAc,GAAG,kBAAvB;EACA,MAAMC,4BAA4B,GAAG,8BAArC;EACA,MAAMC,eAAe,GAAG,iBAAxB;EACA,MAAMC,4BAA4B,GAAG,GAArC;EACA,MAAMC,0BAA0B,GAAG,cAAnC;EACA,MAAMC,0BAA0B,GAAG,WAAnC;EACA,MAAMC,aAAa,GAAG,oBAAtB;EAEA,MAAMC,aAAa,GAAG,CAC3B,QAD2B,EAE3B,aAF2B,EAG3B,cAH2B,EAI3B,mBAJ2B,EAK3BxB,mBAL2B,EAM3BC,oBAN2B,CAAtB;;EC9DA,MAAMwB,QAAQ,GAAIC,KAAD,IAAW;EACjC,SAAQ,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYC,MAAtD;EACD,CAFM;EAIA,MAAMC,QAAQ,GAAIF,KAAD,IAAW;EACjC;EACA,SAAOG,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,KAA/B,MAA0C,iBAAjD;EACD,CAHM;EAKA,MAAMO,YAAY,GAAIP,KAAD,IAAW;EACrC,SAAO,OAAQA,KAAR,KAAmB,QAAnB,IAAgCA,KAAK,YAAYQ,IAAxD;EACD,CAFM;EAIA,MAAMC,aAAa,GAAIC,GAAD,IAAS;EACpC,OAAK,MAAMC,IAAX,IAAmBD,GAAnB,EAAwB;EACtB,QAAIA,GAAG,CAACE,cAAJ,CAAmBD,IAAnB,CAAJ,EAA8B;EAAE,aAAO,KAAP;EAAc;EAC/C;;EACD,SAAO,IAAP;EACD,CALM;EAOA,MAAME,qBAAqB,GAAIC,CAAD,IAAO;EAC1C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,CAAD,CAAX,CAAN,IAAyBG,QAAQ,CAACH,CAAD,CAAxC;EACD,CAFM;EAIA,MAAMI,QAAQ,GAAIJ,CAAD,IAAO;EAC7B,SAAO,wBAAwBK,IAAxB,CAA6BL,CAA7B,KAAmC,OAAOA,CAAP,KAAa,QAAvD;EACD,CAFM;EAIA,MAAMM,YAAY,GAAIC,KAAD,IAAW;EACrC,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAA5B,IAAyCD,KAAK,KAAK,WAAvD,EAAoE;EAClE,WAAO,KAAP;EACD;;EACD,SAAO,IAAP;EACD,CALM;EAiBA,MAAME,sBAAsB,GAAG,CAACC,CAAD,EAAIC,MAAJ,KAAe;EACnD;EACA,MAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;EACzB,SAAK,MAAME,GAAX,IAAkBF,CAAlB,EAAqB;EACnB,UAAIA,CAAC,CAACZ,cAAF,CAAiBc,GAAjB,CAAJ,EAA2B;EACzB,cAAMC,YAAY,GAAGJ,sBAAsB,CAACC,CAAC,CAACE,GAAD,CAAF,EAASD,MAAT,CAA3C;EACA,YAAIG,YAAJ;EACAA,QAAAA,YAAY,GAAGC,QAAQ,CAACH,GAAD,EAAM3F,uBAAN,CAAvB;;EACA,YAAI6F,YAAY,CAACE,MAAb,GAAsB,IAA1B,EAAgC;EAC9BF,UAAAA,YAAY,GAAGA,YAAY,CAACG,SAAb,CAAuB,CAAvB,EAA0B,IAA1B,CAAf;EACAN,UAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBJ,YAAY,GAAG,0CAAvC;EACD;;EACD,eAAOJ,CAAC,CAACE,GAAD,CAAR;EACAF,QAAAA,CAAC,CAACI,YAAD,CAAD,GAAkBD,YAAlB;EACD;EACF;EACF,GAdD,MAcO;EACL,QAAIM,GAAJ;;EAEA,QAAIlC,QAAQ,CAACyB,CAAD,CAAZ,EAAiB;EACfS,MAAAA,GAAG,GAAGJ,QAAQ,CAACL,CAAD,EAAIvF,yBAAJ,CAAd;;EACA,UAAIgG,GAAG,CAACH,MAAJ,GAAa,IAAjB,EAAuB;EACrBG,QAAAA,GAAG,GAAGA,GAAG,CAACF,SAAJ,CAAc,CAAd,EAAiB,IAAjB,CAAN;EACAN,QAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBC,GAAG,GAAG,0CAA9B;EACD;EACF,KAND,MAMO;EACLA,MAAAA,GAAG,GAAGT,CAAN;EACD;;EACD,WAAOS,GAAP;EACD;;EACD,SAAOT,CAAP;EACD,CA/BM;EAiCA,MAAMK,QAAQ,GAAG,CAAC7B,KAAD,EAAQkC,KAAR,KAAkB;EACxC,SAAOlC,KAAK,CAACmC,OAAN,CAAcD,KAAd,EAAqB,EAArB,CAAP;EACD,CAFM;;ECnFA,MAAME,QAAQ,GAAG,MAAM;EAC5B,QAAMC,KAAK,GAAG,IAAI7B,IAAJ,EAAd;EACA,SAAO6B,KAAK,CAACC,WAAN,KAAsB,EAAtB,GAA2BD,KAAK,CAACE,QAAN,EAA3B,GAA8C,EAA9C,GAAmDF,KAAK,CAACG,MAAN,EAA1D;EACD,CAHM;EAKA,MAAMC,MAAM,GAAG,MAAM;EAC1B,SAAOC,IAAI,CAACC,KAAL,CAAY,IAAInC,IAAJ,EAAD,CAAaoC,OAAb,KAAyB,IAApC,CAAP;EACD,CAFM;EAIA,MAAMC,iBAAiB,GAAIC,OAAD,IAAa;EAC5C,SAAQ,QAAQJ,IAAI,CAACK,KAAL,CAAWD,OAAO,CAACF,OAAR,KAAoB,IAA/B,CAAhB;EACD,CAFM;EAIA,MAAMI,OAAO,GAAIC,EAAD,IAAQ;EAC7B;EACA,MAAIC,WAAW,CAACD,EAAD,CAAf,EAAqB;EACnB,WAAO,QAAQA,EAAf;EACD;EACF,CALM;EAOA,MAAMC,WAAW,GAAIC,IAAD,IAAU;EACnC,QAAMC,OAAO,GAAG,0BAA0BC,IAA1B,CAA+BF,IAA/B,CAAhB;EACA,MAAIC,OAAO,IAAI,IAAf,EAAqB,OAAO,KAAP;EACrB,QAAME,CAAC,GAAGF,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMG,CAAC,GAAGH,OAAO,CAAC,CAAD,CAAP,GAAa,CAAvB;EACA,QAAMI,CAAC,GAAGJ,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMK,YAAY,GAAG,IAAIjD,IAAJ,CAASgD,CAAT,EAAYD,CAAZ,EAAeD,CAAf,CAArB,CANmC;;EAQnC,SAAOG,YAAY,CAACC,OAAb,MAA0BJ,CAA1B,IAA+BG,YAAY,CAAClB,QAAb,MAA2BgB,CAA1D,IAA+DE,YAAY,CAACnB,WAAb,MAA8BkB,CAApG;EACD,CATM;;ECdA,MAAMG,cAAN,CAAqB;EAC1B,SAAOC,IAAP,CAAalC,GAAb,EAAkBL,KAAlB,EAAyB;EACvB,QAAI,CAACK,GAAD,IAAQ,CAACL,KAAb,EAAoB;EAClB,aAAO,KAAP;EACD;;EACD,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACC,OAAb,CAAqBrC,GAArB,EAA0B,OAAOL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC2C,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAA9D;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO6C,IAAP,CAAaxC,GAAb,EAAkB;EAChB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAIyC,IAAI,GAAG,IAAX;;EACA,QAAI,KAAKN,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAGL,YAAY,CAACM,OAAb,CAAqB1C,GAArB,CAAP;EACD;;EACD,QAAIyC,IAAI,IAAI,IAAZ,EAAkB;EAChB,UAAI;EACFA,QAAAA,IAAI,GAAGH,IAAI,CAACK,KAAL,CAAWF,IAAX,CAAP;EACD,OAFD,CAEE,OAAOG,CAAP,EAAU;EACb;;EACD,WAAOH,IAAP;EACD;;EAED,SAAOI,MAAP,CAAe7C,GAAf,EAAoB;EAClB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAI,KAAKmC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACU,UAAb,CAAwB9C,GAAxB;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO+C,YAAP,CAAqBC,IAArB,EAA2BC,MAA3B,EAAmC;EACjC,QAAIC,SAAS,GAAGF,IAAI,GAAG,2CAAvB;;EAEA,QAAIC,MAAJ,EAAY;EACVC,MAAAA,SAAS,GAAGA,SAAS,GAAG,UAAZ,GAAyBD,MAAzB,GAAkC,UAA9C;EACD;;EAEDE,IAAAA,QAAQ,CAACC,MAAT,GAAkBF,SAAlB;EACD;;EAED,SAAOG,YAAP,CAAqBL,IAArB,EAA2BrD,KAA3B,EAAkC2D,OAAlC,EAA2CL,MAA3C,EAAmD;EACjD,QAAIM,OAAO,GAAG,EAAd;EACA,QAAIC,SAAS,GAAG,EAAhB;;EACA,QAAIF,OAAJ,EAAa;EACX,YAAM7B,IAAI,GAAG,IAAI3C,IAAJ,EAAb;EACA2C,MAAAA,IAAI,CAACgC,OAAL,CAAahC,IAAI,CAACP,OAAL,KAAkBoC,OAAO,GAAG,IAAzC;EAEAC,MAAAA,OAAO,GAAG,eAAe9B,IAAI,CAACiC,WAAL,EAAzB;EACD;;EAED,QAAIT,MAAJ,EAAY;EACVO,MAAAA,SAAS,GAAG,cAAcP,MAA1B;EACD;;EAEDtD,IAAAA,KAAK,GAAGgE,kBAAkB,CAAChE,KAAD,CAA1B;EAEAwD,IAAAA,QAAQ,CAACC,MAAT,GAAkBJ,IAAI,GAAG,GAAP,GAAarD,KAAb,GAAqB4D,OAArB,GAA+BC,SAA/B,GAA2C,UAA7D;EACD;;EAED,SAAOI,UAAP,CAAmBZ,IAAnB,EAAyB;EACvB,UAAMa,MAAM,GAAGb,IAAI,GAAG,GAAtB;EACA,UAAMc,EAAE,GAAGX,QAAQ,CAACC,MAAT,CAAgBW,KAAhB,CAAsB,GAAtB,CAAX;;EACA,SAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGF,EAAE,CAAC1D,MAA3B,EAAmC4D,GAAG,EAAtC,EAA0C;EACxC,UAAIC,CAAC,GAAGH,EAAE,CAACE,GAAD,CAAV;;EACA,aAAOC,CAAC,CAACC,MAAF,CAAS,CAAT,MAAgB,GAAvB,EAA4B;EAC1BD,QAAAA,CAAC,GAAGA,CAAC,CAAC5D,SAAF,CAAY,CAAZ,EAAe4D,CAAC,CAAC7D,MAAjB,CAAJ;EACD,OAJuC;;;EAMxC,UAAI6D,CAAC,CAACE,OAAF,CAAUN,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,eAAOO,kBAAkB,CAACH,CAAC,CAAC5D,SAAF,CAAYwD,MAAM,CAACzD,MAAnB,EAA2B6D,CAAC,CAAC7D,MAA7B,CAAD,CAAzB;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,SAAO+B,wBAAP,GAAmC;EACjC,WAAO,kBAAkBkC,MAAlB,IAA4BA,MAAM,CAACjC,YAAP,KAAwB,IAApD,IAA4D,OAAOiC,MAAM,CAACjC,YAAP,CAAoBC,OAA3B,KAAuC,UAA1G;EACD;;EAED,SAAOiC,gBAAP,CAAyBC,QAAzB,EAAmC5E,KAAnC,EAA0C;EACxC,QAAIA,KAAK,IAAI,IAAb,EAAmB;EACjB;EACD;;EACD,QAAI;EACF,UAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,aAAKD,IAAL,CAAUqC,QAAV,EAAoBZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAAtC;EACD,OAFD,MAEO;EACL,YAAI4E,QAAQ,KAAK3J,YAAjB,EAA+B;EAC7B,eAAKyI,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAAChE,KAAD,CAA9C,EAAuD,CAAvD,EAA0D0E,MAAM,CAACG,QAAP,CAAgBC,QAA1E;EACD,SAFD,MAEO;EACL,eAAKpB,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAA9C,EAAuE,CAAvE,EAA0E0E,MAAM,CAACG,QAAP,CAAgBC,QAA1F;EACD;EACF;;EACDC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACD,KAXD,CAWE,OAAOiD,CAAP,EAAU;EACb;;EAED,SAAOgC,kBAAP,CAA2BL,QAA3B,EAAqC;EACnC,QAAI9B,IAAJ;;EACA,QAAIiC,GAAG,CAACC,WAAJ,CAAgBzF,cAAhB,CAA+BqF,QAA/B,CAAJ,EAA8C;EAC5C,aAAOG,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,CAAP;EACD;;EACD,QAAI,KAAKpC,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAG,KAAKD,IAAL,CAAU+B,QAAV,CAAP;EACD,KAFD,MAEO;EACL9B,MAAAA,IAAI,GAAG,KAAKmB,UAAL,CAAgBW,QAAhB,CAAP;EACD;;EAED,QAAI9B,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK7C,SAA1B,IAAuC,EAAE,OAAO6C,IAAI,CAACoC,IAAZ,KAAqB,UAArB,IAAmCpC,IAAI,CAACoC,IAAL,OAAgB,EAArD,CAA3C,EAAqG;EACnG,UAAIlF,KAAJ;;EACA,UAAI;EACFA,QAAAA,KAAK,GAAG2C,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC3B,IAAD,CAA7B,CAAR;EACD,OAFD,CAEE,OAAOqC,GAAP,EAAY;EACZnF,QAAAA,KAAK,GAAGyE,kBAAkB,CAAC3B,IAAD,CAA1B;EACD;;EACDiC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACA,aAAOA,KAAP;EACD;EACF;;EAED,SAAOoF,iBAAP,CAA0B/B,IAA1B,EAAgCrD,KAAhC,EAAuC2D,OAAvC,EAAgDL,MAAhD,EAAwD;EACtD;EACA;EACA;EACA;EACA;EAEA,QAAIA,MAAJ,EAAY;EACV,UAAI+B,WAAW,GAAGN,GAAG,CAACM,WAAtB;;EACA,UAAIA,WAAW,IAAI,IAAnB,EAAyB;EAAE;EACzB,cAAMC,WAAW,GAAGhC,MAAM,CAACc,KAAP,CAAa,GAAb,CAApB;EACA,YAAImB,eAAe,GAAG,EAAtB;;EACA,aAAK,IAAIlB,GAAG,GAAGiB,WAAW,CAAC7E,MAAZ,GAAqB,CAApC,EAAuC4D,GAAG,IAAI,CAA9C,EAAiDA,GAAG,EAApD,EAAwD;EACtD,cAAIA,GAAG,KAAK,CAAZ,EAAe;EACbkB,YAAAA,eAAe,GAAGD,WAAW,CAACjB,GAAD,CAAX,GAAmBkB,eAArC;EACD,WAFD,MAEO;EACLA,YAAAA,eAAe,GAAG,MAAMD,WAAW,CAACjB,GAAD,CAAjB,GAAyBkB,eAA3C;EACD,WALqD;;;EAQtD,cAAI,KAAKtB,UAAL,CAAgBZ,IAAhB,CAAJ,EAA2B;EACzB;EACA,gBAAImC,cAAc,GAAG,UAAUnC,IAAV,GAAiBgB,GAAtC;EACA,iBAAKX,YAAL,CAAkB8B,cAAlB,EAAkCxF,KAAlC,EAAyC,EAAzC,EAA6CuF,eAA7C,EAHyB;;EAIzB,gBAAI,CAAC,KAAKtB,UAAL,CAAgBuB,cAAhB,CAAL,EAAsC;EAAE;EACtC;EACD,aAFD,MAEO;EAAE;EACP,mBAAKpC,YAAL,CAAkBoC,cAAlB,EAAkCD,eAAlC;EACD;EACF;;EAED,eAAK7B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC4B,eAAxC;EACA,gBAAME,UAAU,GAAG,KAAKxB,UAAL,CAAgBZ,IAAhB,CAAnB,CApBsD;;EAsBtD,cAAIoC,UAAU,IAAIzF,KAAlB,EAAyB;EACvBqF,YAAAA,WAAW,GAAGE,eAAd;EACAR,YAAAA,GAAG,CAACM,WAAJ,GAAkBA,WAAlB;EACA;EACD;EACF;EACF,OA/BD,MA+BO;EACL,aAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC0B,WAAxC;EACD;EACF,KApCD,MAoCO;EACL,WAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwCL,MAAxC;EACD;EACF;;EAED,SAAOoC,WAAP,CAAoBd,QAApB,EAA8B;EAC5B,UAAMe,OAAO,GAAG,KAAKV,kBAAL,CAAwBzJ,WAAxB,CAAhB;;EACA,QAAImK,OAAO,IAAI,IAAf,EAAqB;EACnB,aAAOA,OAAO,CAACf,QAAD,CAAd;EACD;EACF;;EAED,SAAOgB,WAAP,CAAoBhB,QAApB,EAA8B5E,KAA9B,EAAqC;EACnC,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,UAAIqD,WAAW,GAAG,KAAKZ,kBAAL,CAAwBzJ,WAAxB,CAAlB;;EACA,UAAIqK,WAAW,IAAI,IAAnB,EAAyB;EACvBA,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI7F,KAAK,KAAKC,SAAd,EAAyB;EACvB,eAAO4F,WAAW,CAACjB,QAAD,CAAlB;EACD,OAFD,MAEO;EACLiB,QAAAA,WAAW,CAACjB,QAAD,CAAX,GAAwB5E,KAAxB;EACD;;EACD,WAAK2E,gBAAL,CAAsBnJ,WAAtB,EAAmCqK,WAAnC;EACD;EACF;;EAED,SAAOC,mBAAP,CAA4BlB,QAA5B,EAAsC;EACpC,UAAM5E,KAAK,GAAG,KAAK0F,WAAL,CAAiBd,QAAjB,CAAd;EACA,SAAKgB,WAAL,CAAiBhB,QAAjB,EAA2B3E,SAA3B;EACA,WAAOD,KAAP;EACD;;EAED,SAAO+F,uBAAP,GAAkC;EAChC,QAAIC,CAAC,GAAG,KAAKf,kBAAL,CAAwB/J,YAAxB,CAAR;;EACA,QAAI8K,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACD;;EACDA,IAAAA,CAAC,CAACC,IAAF,GAAS,IAAT;EACA,SAAKtB,gBAAL,CAAsBzJ,YAAtB,EAAoC8K,CAApC;EACD;;EAED,SAAOE,WAAP,CAAoBpD,IAApB,EAA0BqD,KAA1B,EAAiC/F,MAAjC,EAAyC;EACvC,QAAIgG,SAAS,GAAG,KAAKnB,kBAAL,CAAwBrJ,YAAxB,CAAhB;;EACA,QAAI,OAAOwK,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,GAAG,EAAZ;EACD;;EACDA,IAAAA,SAAS,CAACD,KAAD,CAAT,GAAmB;EAAEE,MAAAA,CAAC,EAAEvD;EAAL,KAAnB;EACA,SAAK6B,gBAAL,CAAsB/I,YAAtB,EAAoCwK,SAApC;EACAhG,IAAAA,MAAM,CAACkG,KAAP,qBAA0B1K,YAA1B,sBAAkDuK,KAAlD,iBAA8DrD,IAA9D;EACD;;EAED,SAAOyD,YAAP,CAAqBC,MAArB,EAA6BpG,MAA7B,EAAqC;EACnC,UAAMqG,SAAS,GAAG,KAAKxB,kBAAL,CAAwBrJ,YAAxB,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAlD,IAA0D,OAAOA,SAAS,CAACD,MAAD,CAAhB,KAA6B,WAA3F,EAAwG;EACtGpG,MAAAA,MAAM,CAACkG,KAAP,sBAA2BE,MAA3B,qBAA4CC,SAAS,CAACD,MAAD,CAAT,CAAkBH,CAA9D;EACA,aAAOI,SAAS,CAACD,MAAD,CAAhB;EACA,WAAK7B,gBAAL,CAAsB/I,YAAtB,EAAoC6K,SAApC;EACD;EACF;;EArOyB;EAwOrB,MAAM1B,GAAG,GAAG;EACjBC,EAAAA,WAAW,EAAE;EACX0B,IAAAA,OAAO,EAAE,IADE;EAEXC,IAAAA,KAAK,EAAE,CAFI;EAGXC,IAAAA,MAAM,EAAE;EAHG,GADI;EAMjBxK,EAAAA,SAAS,EAAE,IANM;EAOjByK,EAAAA,gBAAgB,EAAE5G,SAPD;EAQjB6G,EAAAA,eAAe,EAAE7G,SARA;EASjB8G,EAAAA,YAAY,EAAE,KATG;EAUjBC,EAAAA,cAAc,EAAE,KAVC;EAWjB3B,EAAAA,WAAW,EAAE,IAXI;EAYjB4B,EAAAA,cAAc,EAAE,IAZC;EAajBC,EAAAA,cAAc,EAAE,EAbC;EAcjBC,EAAAA,gBAAgB,EAAE,IAdD;EAejBC,EAAAA,WAAW,EAAE,CAfI;EAeD;EAChBC,EAAAA,QAAQ,EAAE;EACRC,IAAAA,mBAAmB,EAAE;EADb,GAhBO;EAkBd;EACHC,EAAAA,WAAW,EAAE,EAnBI;EAoBjBC,EAAAA,mBAAmB,EAAE,IApBJ;EAqBjBC,EAAAA,KAAK,EAAE,IArBU;EAsBjBC,EAAAA,kBAAkB,EAAE,KAtBH;EAuBjBC,EAAAA,YAAY,EAAE,EAvBG;EAwBjBC,EAAAA,OAAO,EAAE,KAxBQ;EAyBjB/C,EAAAA,QAAQ,EAAE,IAzBO;EA0BjBgD,EAAAA,kBAAkB,EAAE,KA1BH;EA2BjBC,EAAAA,iBAAiB,EAAE,IA3BF;EA4BjBC,EAAAA,cAAc,EAAE,IA5BC;EA6BjBC,EAAAA,aAAa,EAAE,EA7BE;EA8BjBC,EAAAA,UAAU,EAAE,IA9BK;EAgCjB;;EAhCiB,CAAZ;;;;;;EC3OQ,MAAMC,QAAN,CAAe;EAG5BpO,EAAAA,WAAW,CAAEqO,GAAF,EAAO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAChB,SAAKA,GAAL,GAAWA,GAAX;EACA,QAAIC,QAAQ,GAAG9F,cAAc,CAAC2C,kBAAf,CAAkC7I,SAAlC,CAAf;;EACA,QAAIgM,QAAJ,EAAc;EACZ,YAAMC,YAAY,GAAG,EAArB;EACA,gEAAiB,EAAjB;EACAD,MAAAA,QAAQ,GAAGA,QAAQ,CAACE,KAApB;;EACA,WAAK,MAAMC,KAAX,IAAoBH,QAApB,EAA8B;EAC5B,YAAIA,QAAQ,CAAC7I,cAAT,CAAwBgJ,KAAxB,CAAJ,EAAoC;EAClCF,UAAAA,YAAY,CAACD,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAD,CAAZ,GAAmCH,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAnC;;EACA,kEAAeC,IAAf,CAAoBJ,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAApB;EACD;EACF;;EACD,WAAKD,KAAL,GAAaD,YAAb;EACD,KAXD,MAWO;EACL,WAAKC,KAAL,GAAa,EAAb;EACA,gEAAiB,EAAjB;EACD;EACF;;EAEDG,EAAAA,GAAG,CAAEpI,GAAF,EAAO;EACR,UAAMqI,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,QAAIqI,IAAJ,EAAU;EACR,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACA,WAAKA,KAAL,CAAWjI,GAAX,IAAkBqI,IAAlB;;EACA,8DAAeF,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACA,WAAOI,IAAP;EACD;;EAEDE,EAAAA,GAAG,CAAEvI,GAAF,EAAOL,KAAP,EAAc;EACf,UAAM0I,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,UAAMwI,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIH,IAAI,IAAI,IAAZ,EAAkB;EAChB,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACD,KAFD,MAEO,IAAIO,OAAO,CAACpI,MAAR,KAAmB,KAAK0H,GAA5B,EAAiC;EACtC,WAAKG,KAAL,+BAAa,IAAb,wCAAoCO,OAAO,CAAC,CAAD,CAA3C,EAAgD,KAAKP,KAArD;EACD;;EACD,SAAKA,KAAL,CAAWjI,GAAX,IAAkBL,KAAlB;;EACA,QAAI,wDAAe,0DAAiB,CAAhC,MAAuCK,GAA3C,EAAgD;EAC9C,8DAAemI,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACD;;EAEDK,EAAAA,aAAa,CAAEL,KAAF,EAAS;EACpB,UAAMQ,UAAU,GAAG,EAAnB;;EACA,UAAMD,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,cAAMC,IAAI,GAAG,EAAb;EACAA,QAAAA,IAAI,CAACR,IAAL,CAAUK,OAAO,CAACE,KAAD,CAAjB;EACAC,QAAAA,IAAI,CAACR,IAAL,CAAUF,KAAK,CAACO,OAAO,CAACE,KAAD,CAAR,CAAf;EACAD,QAAAA,UAAU,CAACN,IAAX,CAAgBQ,IAAhB;EACD;EACF;;EACD1G,IAAAA,cAAc,CAACqC,gBAAf,CAAgCvI,SAAhC,EAA2C;EAAEkM,MAAAA,KAAK,EAAEQ;EAAT,KAA3C;EACD;;EAEDG,EAAAA,MAAM,CAAEjJ,KAAF,EAAS;EACb,QAAIA,KAAK,KAAK,IAAd,EAAoB;EAClB,aAAO,IAAP;EACD;;EACD,UAAM6I,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,YAAI,KAAKT,KAAL,CAAWO,OAAO,CAACE,KAAD,CAAlB,MAA+B/I,KAAnC,EAA0C;EACxC,iBAAO6I,OAAO,CAACE,KAAD,CAAd;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EAEDG,EAAAA,gBAAgB,GAAI;EAClB,UAAMC,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIA,OAAO,IAAI,IAAX,IAAmBA,OAAO,CAAC1I,MAAR,GAAiB,CAAxC,EAA2C;EACzC,aAAO0I,OAAO,CAACA,OAAO,CAAC1I,MAAR,GAAiB,CAAlB,CAAd;EACD;;EACD,WAAO,CAAC,CAAR;EACD;;EAED2I,EAAAA,UAAU,GAAI;EACZ,UAAMC,UAAU,GAAG,wDAAe5I,MAAlC;;EACA,QAAI4I,UAAJ,EAAgB;EACd,aAAO,wDAAeA,UAAU,GAAG,CAA5B,CAAP;EACD;EACF;;EA3F2B;;uDA6FThJ,KAAKhB,KAAK;EAC3B,QAAMwJ,OAAO,GAAGlG,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,6BAAe,IAAf,wBAAX,CAAhB;EACA,QAAM0G,QAAQ,GAAG,EAAjB;EACA,MAAIC,aAAJ;;EACA,OAAK,MAAMR,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,QAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,UAAIF,OAAO,CAACE,KAAD,CAAP,KAAmB1I,GAAvB,EAA4B;EAC1BiJ,QAAAA,QAAQ,CAACT,OAAO,CAACE,KAAD,CAAR,CAAR,GAA2B1J,GAAG,CAACwJ,OAAO,CAACE,KAAD,CAAR,CAA9B;EACD,OAFD,MAEO;EACLQ,QAAAA,aAAa,GAAGR,KAAhB;EACD;EACF;EACF;;EACDF,EAAAA,OAAO,CAACW,MAAR,CAAeD,aAAf,EAA8B,CAA9B;EACA,4DAAiB5G,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeiG,OAAf,CAAX,CAAjB;EACA,SAAOS,QAAP;EACD;;;;;;;;;;EC1GY,MAAMG,YAAN,CAAmB;EAMhC3P,EAAAA,WAAW,OAAwC;EAAA,QAAtC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBC,MAAAA,MAAnB;EAA2BC,MAAAA;EAA3B,KAAsC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EACjD,0DAAexJ,MAAf;EACA,4DAAgBsJ,OAAhB;EACA,0DAAeC,MAAf;EACA,4DAAgBC,OAAhB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEEC,EAAAA,CAAC,CAAEC,MAAF,EAAUF,OAAV,EAAmBG,MAAnB,EAA2BC,UAA3B,EAAuCC,cAAvC,EAAuD;EACtD,QAAIC,MAAM,GAAG,KAAb;EACA,QAAIC,OAAO,GAAG,KAAd,CAFsD;EAKtD;EACA;EACA;;EACA,QAAIzF,MAAM,CAAC0F,eAAX,EAA4B;EAC1B,UAAIL,MAAM,IAAKC,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAKtF,MAAM,CAAC2F,OAAnE,EAA6E;EAC3E3F,QAAAA,MAAM,CAAC0F,eAAP,GAAyB,KAAzB;EACAF,QAAAA,MAAM,GAAG,IAAT;EACD;EACF,KAbqD;;;EAgBtD,QAAI,OAAOF,UAAP,KAAsB,WAA1B,EAAuC;EACrCA,MAAAA,UAAU,GAAG,CAAb;EACD;;EAED1H,IAAAA,cAAc,CAACiE,YAAf,CAA4ByD,UAA5B,8BAAwC,IAAxC;;EAEA,QAAIA,UAAU,GAAGjF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC,EAAwC;EACtC;EACA;EACD;;EAED,QAAI,CAAC5G,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC,UAAIoD,MAAJ,EAAY;EACVK,QAAAA,OAAO,GAAG,IAAV;EACD;EACF;;EAED,QAAI,CAACpK,YAAY,CAAC,oDAAa2G,OAAd,CAAb,IAAuCqD,MAAvC,IAAiD,OAAOE,cAAP,KAA0B,SAA/E,EAA0F;EACxF,YAAMK,UAAU,GAAG,sDAAcC,sBAAd,EAAnB;EAEA;EACN;EACA;;;EACM,UAAI7F,MAAM,CAAC0F,eAAP,IAA2BE,UAAU,CAACT,CAAX,IAAiBD,OAAO,GAAGU,UAAU,CAACT,CAArE,EAA0E;EACxE;EACD;;EACD,0DAAavD,KAAb,sBAAiC,oDAAaI,OAA9C,qBAAgEoD,MAAhE;;EACA,0DAAapD,OAAb,GAAuBoD,MAAvB;;EACA,UAAI,CAAC/J,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC;EACApE,QAAAA,cAAc,CAACwD,mBAAf,CAAmC3J,SAAnC;EACD;;EACD,UAAI2N,MAAM,IAAIxH,cAAc,CAACE,wBAAf,EAAd,EAAyD;EACvD,YAAIuC,GAAG,CAAC3I,SAAJ,IAAiB,IAArB,EAA2B;EACzB2I,UAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,cAAMmO,SAAS,GAAGlI,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAlB;EACA,YAAIuP,gBAAJ;;EACA,YAAID,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACzQ,EAAnC,EAAuC;EACrC0Q,UAAAA,gBAAgB,GAAG1F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBkC,SAAS,CAACzQ,EAA9B,CAAnB;;EACA,cAAIgQ,MAAJ,EAAY;EACV,gBAAI,CAACU,gBAAL,EAAuB;EACrBnI,cAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,IAAxD,EADqB;EAGrB;;EACA4H,cAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkB4B,SAAS,CAACzQ,EAA5B,EAAgC+P,MAAhC;EACD;EACF;EACF;;EAEDxH,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C,EAnBuD;;EAqBvD,cAAMY,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB,CAD6E;EAG7E;;EACA,gEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF;;EACDrI,MAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+C6O,MAA/C,EAAuDrN,aAAvD,EAAsEiI,MAAM,CAACG,QAAP,CAAgBC,QAAtF;EACAxC,MAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C;EACD;;EAED,QAAIxH,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,4DAAcqI,aAAd,CAA4BjB,OAA5B;EACD,KAnFqD;;;EAsFtD,UAAMvK,GAAG,GAAG,sDAAckL,sBAAd,EAAZ,CAtFsD;;;EAyFtD,QAAI,OAAOlL,GAAG,CAACwK,CAAX,KAAiB,WAAjB,IAAgCxK,GAAG,CAACwK,CAAJ,IAASD,OAA7C,EAAsD;EACpDvK,MAAAA,GAAG,CAACwK,CAAJ,GAAQD,OAAR;EACAvK,MAAAA,GAAG,CAACyL,CAAJ,GAAQ1J,MAAM,EAAd,CAFoD;;EAGpD,4DAAc2J,sBAAd,CAAqC1L,GAArC;EACD,KA7FqD;;;EAgGtD,QAAIU,YAAY,CAAC,oDAAa2G,OAAd,CAAhB,EAAwC;EACtC3B,MAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD,KAlGqD;;;EAqGtD,QAAI,CAACmD,MAAM,IAAIC,OAAX,KAAuB,CAAC,sDAAca,gBAA1C,EAA4D;EAC1D,4DAAcC,mBAAd;EACD;;EAEDlG,IAAAA,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyBoD,UAAzB;EACD;;EAjI+B;;;;ECFnB,MAAMkB,aAAN,CAAoB;EAIjCpR,EAAAA,WAAW,OAAc;EAAA,QAAZ;EAAEsG,MAAAA;EAAF,KAAY;EAAA;EAAA;EAAA;EAAA;EAAA,SAFzBsG,OAEyB;EACvB,8DAAetG,MAAf;EACA,SAAKsG,OAAL,GAAe,KAAKyE,OAAL,EAAf;EACD;;EAEDA,EAAAA,OAAO,GAAI;EACT,QAAIC,IAAI,GAAG,IAAX;;EACA,QAAIrL,YAAY,CAAC,KAAK2G,OAAN,CAAhB,EAAgC;EAC9B,aAAO,KAAKA,OAAZ;EACD;;EACD,QAAIpE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMxC,KAAK,GAAGsC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAd;;EACA,UAAI8E,YAAY,CAACC,KAAD,CAAhB,EAAyB;EACvB,YAAI;EACFoL,UAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACzE,KAAD,CAA7B,CAAP;EACD,SAFD,CAEE,OAAOiD,CAAP,EAAU;EACV,kEAAaqD,KAAb,CAAmB,8DAA8DtG,KAAjF,EADU;EAGV;EACA;EACA;;;EACA,cAAIA,KAAK,CAACS,MAAN,KAAiB,EAArB,EAAyB;EACvB2K,YAAAA,IAAI,GAAGpL,KAAP;EACAsC,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C+E,KAA9C;EACD,WAHD,MAGO;EACL,oEAAaqL,KAAb,CAAmB,kBAAkBrL,KAArC;EACD;EACF,SAfsB;;;EAkBvB,YAAID,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,UAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+CmQ,IAA/C,EAAqD3O,aAArD,EAAoEiI,MAAM,CAACG,QAAP,CAAgBC,QAApF;EACD;EACF;EACF;;EAED,QAAI,CAAC/E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EACvBA,MAAAA,IAAI,GAAG9I,cAAc,CAAC2B,UAAf,CAA0BhJ,YAA1B,CAAP;;EACA,UAAI8E,YAAY,CAACqL,IAAD,CAAZ,KAAuBA,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAAtB,IAA2B4G,IAAI,CAAC5G,OAAL,CAAa,IAAb,MAAuB,CAAlD,IAAuD4G,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAApG,CAAJ,EAA4G;EAC1G4G,QAAAA,IAAI,GAAG,IAAP;EACD;;EACD,UAAIrL,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CmQ,IAA9C;EACD;EACF;;EAED,WAAOA,IAAP;EACD;;EAnDgC;;ECJ5B,MAAME,kBAAkB,GAAG,iCAA3B;EAGA,MAAMC,sBAAsB,GAAG,kBAA/B;;EACA,MAAMC,WAAW,aAAMD,sBAAN,6BAAjB;EACA,MAAME,WAAW,aAAMF,sBAAN,yCAA2DD,kBAA3D,CAAjB;EACA,MAAMI,YAAY,aAAMH,sBAAN,+GAAiID,kBAAjI,CAAlB;EACA,MAAMK,cAAc,aAAMJ,sBAAN,sDAAwED,kBAAxE,CAApB;EACA,MAAMM,aAAa,aAAML,sBAAN,qDAAuED,kBAAvE,CAAnB;EACA,MAAMO,eAAe,aAAMN,sBAAN,4EAA8FD,kBAA9F,CAArB;EACA,MAAMQ,SAAS,aAAMP,sBAAN,4CAA8DD,kBAA9D,CAAf;EACA,MAAMS,SAAS,aAAMR,sBAAN,uCAAf;EAGA,MAAMS,iBAAiB,aAAMT,sBAAN,0DAAvB;EACA,MAAMU,kBAAkB,aAAMV,sBAAN,iEAAxB;;ECVP,IAAIW,gBAAJ;;EAEO,MAAMC,oBAAoB,GAAIC,QAAD,IAAc;EAChD;EACA,MAAIvN,QAAQ,CAACuN,QAAD,CAAZ,EAAwB;EACtB,SAAK,IAAI/L,GAAT,IAAgB+L,QAAhB,EAA0B;EACxB,UAAIA,QAAQ,CAAC7M,cAAT,CAAwBc,GAAxB,CAAJ,EAAkC;EAChC,YAAIxB,QAAQ,CAACuN,QAAQ,CAAC/L,GAAD,CAAT,CAAR,IAA2BgM,KAAK,CAACC,OAAN,CAAcF,QAAQ,CAAC/L,GAAD,CAAtB,CAA/B,EAA6D;EAC3D,iBAAO,KAAP;EACD,SAFD,MAEO,IAAInB,YAAY,CAACkN,QAAQ,CAAC/L,GAAD,CAAT,CAAhB,EAAiC;EACtC+L,UAAAA,QAAQ,CAAC/L,GAAD,CAAR,GAAgBmB,iBAAiB,CAAC4K,QAAQ,CAAC/L,GAAD,CAAT,CAAjC;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EACD,SAAO,KAAP;EACD,CAfM;EAiBA,MAAMkM,4BAA4B,GAAG,CAACC,UAAD,EAAapM,MAAb,KAAwB;EAClE,MAAIvB,QAAQ,CAAC2N,UAAD,CAAZ,EAA0B;EACxB,SAAK,IAAInM,GAAT,IAAgBmM,UAAhB,EAA4B;EAC1B,UAAIA,UAAU,CAACjN,cAAX,CAA0Bc,GAA1B,CAAJ,EAAoC;EAClC,YAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,cAAI,CAACgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAL,EAAqC;EACnC,mBAAO,KAAP;EACD;;EAED,cAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAAhB,GAAyB,EAA7B,EAAiC;EAC/BL,YAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwB,kDAAkD6L,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAA1F;EACD;;EAED,eAAK,IAAIgM,OAAT,IAAoBD,UAAU,CAACnM,GAAD,CAA9B,EAAqC;EACnC,gBAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBd,cAAhB,CAA+BkN,OAA/B,CAAJ,EAA6C;EAAE;EAC7C,kBAAI,CAAC5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAT,IAAuC,CAACN,oBAAoB,CAACK,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAhE,EAA4F;EAC1F,uBAAO,KAAP;EACD;EACF;EACF;EACF,SAhBD,MAgBO;EACL,cAAI5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAX,CAAR,IAA6BgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAjC,EAAiE;EAC/D,mBAAO,KAAP;EACD,WAFD,MAEO,IAAInB,YAAY,CAACsN,UAAU,CAACnM,GAAD,CAAX,CAAhB,EAAmC;EACxCmM,YAAAA,UAAU,CAACnM,GAAD,CAAV,GAAkBmB,iBAAiB,CAACgL,UAAU,CAACnM,GAAD,CAAX,CAAnC;EACD;EACF;EACF;EACF;;EAED,QAAI3B,QAAQ,CAAC8N,UAAU,CAACzR,UAAD,CAAX,CAAR,IAAoC8E,QAAQ,CAAC2M,UAAU,CAACzR,UAAD,CAAX,CAAhD,EAA0E;EACxE;EACA,YAAM2R,SAAS,GAAGF,UAAU,CAACzR,UAAD,CAAV,GAAyB,EAA3C,CAFwE;;EAIxE,UAAI,OAAOmR,gBAAP,KAA4B,WAAhC,EAA6C;EAC3CA,QAAAA,gBAAgB,GAAG5J,cAAc,CAAC2C,kBAAf,CAAkCjK,qBAAlC,CAAnB;EACD;;EACD,UAAI,OAAOkR,gBAAP,KAA4B,WAA5B,IAA2CA,gBAAgB,CAAChH,IAAjB,OAA4BwH,SAAS,CAACxH,IAAV,EAA3E,EAA6F;EAC3F;EACA9E,QAAAA,MAAM,CAACiL,KAAP,CAAa,mCAAmCmB,UAAhD;EACA,eAAO,KAAP;EACD;;EACDN,MAAAA,gBAAgB,GAAGQ,SAAnB;EACApK,MAAAA,cAAc,CAACqC,gBAAf,CAAgC3J,qBAAhC,EAAuD0R,SAAvD;EACD;;EACD,WAAO,IAAP;EACD,GA9CiE;;;EA+ClE,SAAO,KAAP;EACD,CAhDM;;;;;;;;;;;;EClBQ,MAAMC,YAAN,SAA2BN,KAA3B,CAAiC;EAM9CvS,EAAAA,WAAW,OAAgD8S,MAAhD,EAAwD;EAAA,QAAtD;EAAExM,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBmD,MAAAA;EAAnB,KAAsD;EACjE;EADiE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEjE,8DAAezM,MAAf;EACA,gEAAkBwM,MAAlB;EACA,gEAAgBlD,OAAhB;EACA,4FAAgCmD,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAgB;EAClB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CoR,SAC4C;EAD5CA,QAAAA,SAC4C;EAAA;;EACjD,gFAAwBA,SAAxB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAazB,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,2BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,gEAAkB,IAAlB;EACD;;EAoDDC,EAAAA,UAAU,CAAEC,OAAF,EAAW;EACnB,QAAI,6BAAC,IAAD,uDAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,OAAOlI,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;EACD;;EACD,QAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C;EACD;;EACD,UAAMoG,MAAM,GAAGnI,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAf;EACA,UAAME,OAAO,GAAG,EAAhB;;EACA,QAAI,OAAOD,MAAP,KAAkB,WAAtB,EAAmC;EACjCC,MAAAA,OAAO,CAACC,SAAR,GAAoB,IAAIjO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAApB;EACAC,MAAAA,OAAO,CAACE,QAAR,GAAmB,IAAIlO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAAnB;EACAC,MAAAA,OAAO,CAACG,KAAR,GAAgBJ,MAAM,CAAC,CAAD,CAAtB;EACA,aAAOC,OAAP;EACD;EACF;;EAlG6C;;yDA8B1BL,WAAW;EAC7B,MAAIT,KAAK,CAACC,OAAN,CAAcQ,SAAd,CAAJ,EAA8B;EAC5B,WAAOA,SAAS,CAACrM,MAAV,GAAmB,CAA1B,EAA6B;EAC3B,UAAI8M,SAAS,GAAGT,SAAS,CAACU,KAAV,EAAhB;;EACA,UAAI,CAAC9O,QAAQ,CAAC6O,SAAD,CAAb,EAA0B;EACxB,gEAAalC,KAAb,CAAmBI,WAAnB;;EACA;EACD;;EAED,UAAI8B,SAAS,CAAC9M,MAAV,GAAmB,IAAvB,EAA6B;EAC3B8M,QAAAA,SAAS,GAAGA,SAAS,CAAC7M,SAAV,CAAoB,CAApB,EAAuB,IAAvB,CAAZ;;EACA,gEAAaC,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,0CAA1C;EACD;;EAED,UAAI9O,aAAa,CAACgP,QAAd,CAAuBF,SAAvB,CAAJ,EAAuC;EACrC,gEAAa5M,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,oEAA1C;;EACA;EACD;;EAED,YAAMzK,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAezM,QAAQ,CAAC+M,SAAD,EAAY7S,uBAAZ,CAAvB;;EAEA,UAAIoS,SAAS,CAACrM,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,cAAM2L,QAAQ,GAAGU,SAAS,CAACU,KAAV,EAAjB;;EACA,YAAI,CAAC3O,QAAQ,CAACuN,QAAD,CAAb,EAAyB;EACvB;EACAU,UAAAA,SAAS,CAACa,OAAV,CAAkBvB,QAAlB;EACD,SAHD,MAGO;EACL;EACA,cAAImB,SAAS,KAAK,SAAlB,EAA6B;EAC3B,gBAAI,CAAChB,4BAA4B,CAACH,QAAD,8BAAW,IAAX,wBAAjC,EAA2D;EACzD,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B,4CAA9B;;EACA;EACD;EACF,WALD,MAKO;EACL,gBAAI,CAACwL,oBAAoB,CAACC,QAAD,CAAzB,EAAqC;EACnC,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,qCAA1C;;EACA;EACD;EACF;;EACDzK,UAAAA,IAAI,CAAC8K,OAAL,GAAexB,QAAf;EACD;EACF;;EAED,gEAAcyB,YAAd,CAA2B/K,IAA3B;EACD;EACF;EACF;;ECpFI,MAAMgL,YAAY,GAAIC,GAAD,IAAS;EACnC,QAAMC,SAAS,GAAG,EAAlB;EACA,QAAM3J,GAAG,GAAG0J,GAAG,CAACvJ,OAAJ,CAAY,GAAZ,CAAZ;;EAEA,MAAIH,GAAG,GAAG,CAAV,EAAa;EACX,UAAM4J,GAAG,GAAGF,GAAG,CAACrN,SAAJ,CAAc2D,GAAG,GAAG,CAApB,CAAZ;EACA,QAAI6J,KAAJ;EACA,UAAMC,EAAE,GAAG,KAAX,CAHW;;EAIX,UAAMC,MAAM,GAAG,oBAAf;;EACA,UAAMC,MAAM,GAAG,UAAUxE,CAAV,EAAa;EAC1B,UAAIyE,WAAW,GAAGzE,CAAC,CAAC/I,OAAF,CAAUqN,EAAV,EAAc,GAAd,CAAlB;;EACA,UAAI;EACFG,QAAAA,WAAW,GAAG7J,kBAAkB,CAAC6J,WAAD,CAAhC;EACD,OAFD,CAEE,OAAOrL,CAAP,EAAU;EAEX;;EACD,aAAOqL,WAAP;EACD,KARD;;EASAJ,IAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;;EACA,WAAOC,KAAP,EAAc;EACZF,MAAAA,SAAS,CAACK,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAAP,CAAT,GAA8BG,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAApC;EACAA,MAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;EACD;EACF;;EACD,SAAOD,SAAP;EACD,CAzBM;EA2BA,MAAMO,SAAS,GAAIR,GAAD,IAAS;EAChC,MAAIA,GAAG,KAAK,EAAZ,EAAgB,OAAO,EAAP;EAChB,MAAIS,CAAC,GAAGhL,QAAQ,CAACiL,aAAT,CAAuB,GAAvB,CAAR;EACAD,EAAAA,CAAC,CAACE,IAAF,GAASX,GAAT;EACA,SAAOS,CAAC,CAAC1J,QAAT;EACD,CALM;EAOA,MAAM6J,QAAQ,GAAG,CAACZ,GAAD,EAAM/H,CAAN,EAAS4I,CAAT,KAAe;EACrC,SAAOb,GAAG,GAAG,GAAN,GAAY/H,CAAZ,GAAgB,GAAhB,GAAsBhC,kBAAkB,CAAC4K,CAAD,CAA/C;EACD,CAFM;EAIA,MAAMC,WAAW,GAAG,MAAM;EAC/B,SAAOnK,MAAM,CAACG,QAAP,CAAgBC,QAAvB;EACD,CAFM;;ECtCP;EACO,MAAMgK,qBAAqB,GAAIC,YAAD,IAAkB;EACrD,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,CAAC,IAAIF,YAAY,CAACtO,MAAb,GAAsB,CAA3B,IAAgC,CAA3C,CAAd;EACA,MAAIyO,MAAM,GAAG,CAACH,YAAY,GAAGC,OAAhB,EACRlO,OADQ,CACA,KADA,EACO,GADP,EAERA,OAFQ,CAEA,IAFA,EAEM,GAFN,CAAb;EAIA,MAAIqO,OAAO,GAAGzK,MAAM,CAAC0K,IAAP,CAAYF,MAAZ,CAAd;EACA,MAAIG,aAAa,GAAG,EAApB;;EACA,OAAK,IAAIC,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACH,OAAO,CAAC1O,MAAxB,EAAgC6O,CAAC,EAAjC,EAAqC;EACnCD,IAAAA,aAAa,CAAC7G,IAAd,CAAmB2G,OAAO,CAACI,UAAR,CAAmBD,CAAnB,CAAnB;EACD;;EACD,SAAO,IAAIE,UAAJ,CAAeH,aAAf,CAAP;EACD,CAZM;EAcA,MAAMI,YAAY,GAAG,CAACC,UAAD,EAAatP,MAAb,KAAwB;EAClDA,EAAAA,MAAM,IAAI,OAAOA,MAAM,CAACkG,KAAd,KAAwB,UAAlC,IAAgDlG,MAAM,CAACkG,KAAP,CAAa,UAAUoJ,UAAvB,CAAhD;EACA,SAAOC,gBAAgB,CAACD,UAAD,CAAvB;EACD,CAHM;EAKA,MAAME,QAAQ,GAAIC,YAAD,IAAkB;EACxC,MAAIA,YAAY,IAAI,IAApB,EAA0B,OAAO,EAAP;EAC1B,MAAIP,CAAJ;EAAA,MAAOtP,KAAP;EAAA,MACI8P,kBAAkB,GAAG,EADzB;EAAA,MAEIC,0BAA0B,GAAG,EAFjC;EAAA,MAGIC,SAAS,GAAG,EAHhB;EAAA,MAIIC,UAAU,GAAG,EAJjB;EAAA,MAKIC,SAAS,GAAG,EALhB;EAAA,MAMIC,iBAAiB,GAAG,CANxB;EAAA;EAOIC,EAAAA,gBAAgB,GAAG,CAPvB;EAAA,MAQIC,eAAe,GAAG,CARtB;EAAA,MASIC,mBAAmB,GAAG,EAT1B;EAAA,MAUIC,gBAAgB,GAAG,CAVvB;EAAA,MAWIC,qBAAqB,GAAG,CAX5B;EAAA,MAYIC,EAZJ;EAAA,MAaIC,CAAC,GAAG9R,MAAM,CAAC+R,YAbf;;EAeA,OAAKF,EAAE,GAAG,CAAV,EAAaA,EAAE,GAAGZ,YAAY,CAACpP,MAA/B,EAAuCgQ,EAAE,IAAI,CAA7C,EAAgD;EAC9CT,IAAAA,SAAS,GAAGH,YAAY,CAACtL,MAAb,CAAoBkM,EAApB,CAAZ;;EACA,QAAI,CAAC3R,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDE,SAAzD,CAAL,EAA0E;EACxEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB,GAAgCI,gBAAgB,EAAhD;EACAL,MAAAA,0BAA0B,CAACC,SAAD,CAA1B,GAAwC,IAAxC;EACD;;EAEDC,IAAAA,UAAU,GAAGC,SAAS,GAAGF,SAAzB;;EACA,QAAIlR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDG,UAAzD,CAAJ,EAA0E;EACxEC,MAAAA,SAAS,GAAGD,UAAZ;EACD,KAFD,MAEO;EACL,UAAInR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,YAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,gBAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;EACF;;EACDxQ,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,SAvBD,MAuBO;EACLA,UAAAA,KAAK,GAAG,CAAR;;EACA,eAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,QAAAA,iBAAiB;;EACjB,YAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,UAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,UAAAA,eAAe;EAChB;;EACD,eAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,OAxDD,MAwDO;EACLlQ,QAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,aAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB,OA7EI;;;EA+ELP,MAAAA,kBAAkB,CAACG,UAAD,CAAlB,GAAiCG,gBAAgB,EAAjD;EACAF,MAAAA,SAAS,GAAGtR,MAAM,CAACoR,SAAD,CAAlB;EACD;EACF,GA7GuC;;;EAgHxC,MAAIE,SAAS,KAAK,EAAlB,EAAsB;EACpB,QAAIpR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,UAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,cAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;EACF;;EACDxQ,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,OAvBD,MAuBO;EACLA,QAAAA,KAAK,GAAG,CAAR;;EACA,aAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB;;EACD,aAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,KAxDD,MAwDO;EACLlQ,MAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,WAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,QAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,YAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,UAAAA,qBAAqB,GAAG,CAAxB;EACAF,UAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,UAAAA,gBAAgB,GAAG,CAAnB;EACD,SAJD,MAIO;EACLC,UAAAA,qBAAqB;EACtB;;EACDxQ,QAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,IAAAA,iBAAiB;;EACjB,QAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,MAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,MAAAA,eAAe;EAChB;EACF,GA9LuC;;;EAiMxCrQ,EAAAA,KAAK,GAAG,CAAR;;EACA,OAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,QAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,MAAAA,qBAAqB,GAAG,CAAxB;EACAF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,MAAAA,gBAAgB,GAAG,CAAnB;EACD,KAJD,MAIO;EACLC,MAAAA,qBAAqB;EACtB;;EACDxQ,IAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD,GA5MuC;;;EA+MxC,SAAO,IAAP,EAAa;EACXuQ,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,QAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACA;EACD,KAHD,MAGOC,qBAAqB;EAC7B;;EACD,SAAOF,mBAAP;EACD,CAvNM;EAyNA,MAAMO,SAAS,GAAG,MAAM;EAC7B,MAAIxQ,GAAG,GAAG,EAAV;EACA,MAAIiP,CAAC,GAAG,CAAR;;EAEA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGiP,CAAZ;EACD;;EAED,SAAOjP,GAAG,GAAG,KAAb;EACD,CAjBM;;EAmBP,MAAMyQ,OAAO,GAAGD,SAAS,EAAzB;EAgDO,MAAMlB,gBAAgB,GAAIhR,KAAD,IAAW;EACzC,MAAIA,KAAK,IAAI,IAAb,EAAmB,OAAO,EAAP;EACnB,MAAIoS,MAAM,GAAG,EAAb;EACA,MAAIC,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,IAAxC;EACA,MAAIhC,CAAC,GAAG,CAAR;EAEA3Q,EAAAA,KAAK,GAAGiR,QAAQ,CAACjR,KAAD,CAAhB;;EAEA,SAAO2Q,CAAC,GAAG3Q,KAAK,CAAC8B,MAAN,GAAe,CAA1B,EAA6B;EAE3B,QAAI6O,CAAC,GAAG,CAAJ,IAAS,CAAb,EAAgB;EACd0B,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,KAA2B,CAAlC;EACA2B,MAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,IAA0B,GAAjC;EACA,UAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAY3Q,KAAK,CAAC8B,MAAtB,EACEyQ,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAAJ,GAAQ,CAAzB,KAA+B,CAAtC,CADF,KAGE4B,IAAI,GAAGK,GAAP;EACH,KAPD,MAOO;EACLP,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;;EACA,UAAI,CAACA,CAAC,GAAG,CAAL,IAAU,CAAV,GAAc3Q,KAAK,CAAC8B,MAAxB,EAAgC;EAC9BwQ,QAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,KAAiC,CAAxC;EACA4B,QAAAA,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;EACD,OAHD,MAIE2B,IAAI,GAAGC,IAAI,GAAGK,GAAd;EACH;;EACDjC,IAAAA,CAAC,IAAI,CAAL;EAEA6B,IAAAA,IAAI,GAAGH,IAAI,IAAI,CAAf;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,CAAR,KAAc,CAAf,GAAqBC,IAAI,IAAI,CAApC;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,EAAR,KAAe,CAAhB,GAAsBC,IAAI,IAAI,CAArC;EACAI,IAAAA,IAAI,GAAGJ,IAAI,GAAG,EAAd;;EAEA,QAAIxR,KAAK,CAACuR,IAAD,CAAT,EAAiB;EACfI,MAAAA,IAAI,GAAGC,IAAI,GAAG,EAAd;EACD,KAFD,MAEO,IAAI5R,KAAK,CAACwR,IAAD,CAAT,EAAiB;EACtBI,MAAAA,IAAI,GAAG,EAAP;EACD;;EAEDP,IAAAA,MAAM,GAAGA,MAAM,GACbD,OAAO,CAACvM,MAAR,CAAe4M,IAAf,CADO,GACgBL,OAAO,CAACvM,MAAR,CAAe6M,IAAf,CADhB,GAEPN,OAAO,CAACvM,MAAR,CAAe8M,IAAf,CAFO,GAEgBP,OAAO,CAACvM,MAAR,CAAe+M,IAAf,CAFzB;EAID;;EAED,SAAOP,MAAP;EACD,CA7CM;;;;;;;;;;ECzSQ,MAAMS,iBAAN,CAAwB;EAAA;EAAA,SAIrCC,iBAJqC,GAIjB,CAJiB;EAAA,SAKrCC,iBALqC,GAKjB,CALiB;EAAA;;EAuFrC;EACF;EACA;EACA;EACA;EACA;EACE,SAAOC,WAAP,CAAoB5D,GAApB,EAAyB6D,OAAzB,EAAkCC,WAAlC,EAA+C5E,OAA/C,EAAwD;EACtD,kEAAkBc,GAAlB,EAAuB,CAAvB,EAA0B6D,OAA1B,EAAmCC,WAAnC,EAAgD5E,OAAhD;EACD;;EA8BD6E,EAAAA,iBAAiB,GAAI;EACnB,SAAK1R,MAAL,CAAYkG,KAAZ,CAAkB,oBAAoB,KAAKmL,iBAA3C,EADmB;;EAInB,QAAI,KAAKA,iBAAL,GAAyB,EAA7B,EAAiC;EAC/B,WAAKrR,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,sBAAsB,KAAK0X,iBAA3B,GAA+C,iCAAlF;EACA,WAAKC,iBAAL,GAAyB3T,aAAzB,CAF+B;;EAG/B,aAAO,KAAK2T,iBAAZ;EACD;;EAED,QAAI,KAAKK,OAAL,CAAa/X,MAAb,IAAuB,IAA3B,EAAiC;EAC/B;EACA,WAAKoG,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,+BAAnC;EACA,aAAOgE,aAAP;EACD,KAJD,MAIO;EACL;EACA,YAAMiU,WAAW,GAAG,CAAC3Q,IAAI,CAACC,KAAL,CAAWD,IAAI,CAAC4Q,MAAL,KAAgB,EAA3B,IAAiC,CAAlC,IAAuC,IAA3D;EACA,WAAKP,iBAAL,IAA0BM,WAA1B;;EACA,UAAI,KAAKN,iBAAL,GAAyB1T,mBAA7B,EAAkD;EAChD,aAAKoC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,eAAO,KAAKA,iBAAZ;EACD,OAHD,MAGO;EACL,aAAKA,iBAAL,GAAyB3T,aAAzB;EACD;;EACD,WAAKqC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,aAAO,KAAKA,iBAAZ;EACD;EACF;;EAxJoC;;qDAiHZ3D,KAAKmE,YAAY;EACxC,MAAIA,UAAU,KAAK,IAAnB,EAAyB;EACvB,UAAMC,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAACD,UAAL,GAAkB,IAAlB;EACA,WAAOvD,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeuP,IAAf,CAAD,EAAuB,KAAK/R,MAA5B,CAAzB,CAAf;EACD;;EACD,MAAIkC,cAAc,CAACE,wBAAf,MAA6C,OAAOC,YAAY,CAACM,OAAb,CAAqBpH,UAArB,CAAP,KAA4C,WAAzF,IAAwG8G,YAAY,CAACM,OAAb,CAAqBpH,UAArB,MAAqC,IAAjJ,EAAuJ;EACrJ,WAAOgT,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeN,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAAf,CAAD,EAAgE,KAAKyE,MAArE,CAAzB,CAAf;EACD;;EACD,SAAO2N,GAAP;EACD;;yDAlB0BqE,aAAa;EACtC,MAAIC,KAAK,GAAG/P,cAAc,CAACoD,WAAf,CAA2BvJ,SAA3B,CAAZ;;EACA,MAAI,OAAOkW,KAAP,KAAiB,SAArB,EAAgC;EAC9BA,IAAAA,KAAK,GAAG,KAAR;EACD;;EACD,SAAO1D,QAAQ,CAACyD,WAAD,EAAcjW,SAAd,EAAyBkW,KAAK,GAAG,MAAH,GAAY,OAA1C,CAAf;EACD;;qEAdiC;EAChC,MAAItN,GAAG,CAACiC,cAAJ,IAAsB,CAACjH,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAnC,IAA4D,CAAChI,QAAQ,CAAC,KAAKiL,MAAL,CAAYjD,OAAb,CAAzE,EAAgG;EAC9F3B,IAAAA,GAAG,CAACiC,cAAJ,GAAqB,KAArB;EACA,WAAO,KAAP;EACD;;EACD,SAAO,KAAK2C,MAAL,CAAYjD,OAAZ,CAAoB4L,KAApB,CAA0B,CAAC,CAA3B,MAAkCpW,sBAAzC;EACD;;6CA/FoB6R,KAAKwE,OAAOX,SAASC,aAAa5E,SAAS;EAAA;;EAC9D,kCAAI,IAAJ,uDAAoC;EAClC,SAAK7M,MAAL,CAAYkG,KAAZ,CAAkB,uCAAuC,KAAKqD,MAAL,CAAYjD,OAArE;EACA;EACD,GAJ6D;EAO9D;;;EACA,MAAI,CAAC3G,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAjB,EAAwC;EACtC3B,IAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;EACD;EACD;EACJ;EACA;EACA;EACA;EACA;;;EAEI,MAAIkG,OAAO,IAAIA,OAAO,KAAKhP,UAA3B,EAAuC;EACrC;EACA,QAAI,CAAC8B,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IAAuC3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAA5F,EAAgG;EAC9F6L,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmE,KAAK0D,iBAAxE;;EACA,sEAAkB1D,GAAlB,EAAuB9N,SAAvB,EAAkC2R,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,KAAKC,iBAAL,EAHO,CAAV;EAID;EACF,GARD,MAQO;EACL,QAAI,CAAC/R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IACH3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAD9C,IAEJ4L,KAAK,GAAG7V,SAFR,EAEmB;EACnB;EACE8V,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmEwE,KAAnE;;EACA,sEAAkBxE,GAAlB,EAAuBwE,KAAK,GAAG,CAA/B,EAAkCX,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,EAHO,CAAV;EAIA;EACD;EACF,GArC6D;EAwC9D;;;EACA,MAAI,CAACA,WAAL,EAAkB;EAChB,QAAI9R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAhB,EAAuC;EACrC;EACAqH,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,KAAKpE,MAAL,CAAYjD,OAAxB,CAAd;EACD;;EACDqH,IAAAA,GAAG,+BAAG,IAAH,sCAAyBA,GAAzB,EAA8B6D,OAA9B,CAAH;EACD,GAND,MAMO;EACLlN,IAAAA,MAAM,CAAC0F,eAAP,GAAyB,IAAzB;EACD;;EAED2D,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAewE,KAAf,CAAd,CAnD8D;;EAqD9DxE,EAAAA,GAAG,+BAAG,IAAH,0CAA2BA,GAA3B,CAAH;EACAA,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW,IAAI5O,IAAJ,GAAWoC,OAAX,EAAX,CAAd,CAtD8D;EAuD9D;;EACA,MAAI,sBAAAmD,MAAM,CAAC+N,SAAP,wEAAkBlT,cAAlB,CAAiC,QAAjC,4BAA8CmF,MAAM,CAACgO,SAArD,sDAA8C,kBAAkBnT,cAAlB,CAAiC,QAAjC,CAA9C,CAAJ,EAA8F;EAC5F;EACA,UAAMoT,MAAM,GAAGjO,MAAM,CAAC+N,SAAP,CAAiBE,MAAjB,IAA2BjO,MAAM,CAACgO,SAAP,CAAiBC,MAA3D;EACA5E,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAe4E,MAAf,CAAd;EACD;;EACD,MAAI5E,GAAG,CAACvJ,OAAJ,CAAY,mBAAZ,MAAqC,CAAC,CAA1C,EAA6C;EAC3CuJ,IAAAA,GAAG,GAAGA,GAAG,CAACjN,OAAJ,CAAY,mBAAZ,EAAiC,QAAjC,CAAN;EACD,GA/D6D;;;EAiE9D,MAAI8R,WAAW,GAAGpP,QAAQ,CAACqP,sBAAT,CAAgC,UAAhC,CAAlB;;EACA,SAAOD,WAAW,CAAC,CAAD,CAAX,IAAkBA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAxC,EAAoD;EAClDF,IAAAA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAf,CAA0BC,WAA1B,CAAsCH,WAAW,CAAC,CAAD,CAAjD;EACD;;EACD,QAAM/I,CAAC,GAAGrG,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAV;EACA5E,EAAAA,CAAC,CAACmJ,YAAF,CAAe,MAAf,EAAuB,iBAAvB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsBjF,GAAtB;EACAlE,EAAAA,CAAC,CAACmJ,YAAF,CAAe,OAAf,EAAwB,UAAxB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsB,UAAtB;EACAnJ,EAAAA,CAAC,CAACoJ,KAAF,GAAU,IAAV;EACAzP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDtJ,CAArD;EACA,OAAKzJ,MAAL,CAAYkG,KAAZ,CAAkB,qBAAqByH,GAAvC;EACD;;EArFkByD,kBACZpR;EADYoR,kBAEZ7H;EAFY6H,kBAGZO;wBAHYP;;;wBAAAA;;;wBAAAA;;;wBAAAA;;;;ECPrB;EA+CO,MAAM4B,iBAAiB,GAAG,MAAM;EACrC,MAAIC,YAAY,GAAG,EAAnB;;EACA,MAAI/Q,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI8Q,OAAO,GAAGhR,cAAc,CAACO,IAAf,CAAoB1H,gBAApB,CAAd;;EACA,QAAImY,OAAO,IAAI,IAAf,EAAqB;EACnBA,MAAAA,OAAO,GAAG3Q,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC6O,OAAD,CAAlB,CAA4BxS,OAA5B,CAAoCjG,gBAApC,EAAsD,IAAtD,CAAX,CAAV;;EACA,UAAIyY,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC8T,QAAAA,YAAY,CAACE,EAAb,GAAkBD,OAAlB;EACD,OAFD,MAEO;EACLD,QAAAA,YAAY,GAAGC,OAAf;EACD;EACF,KAPD,MAOO;EACLD,MAAAA,YAAY,GAAG,EAAf;EACD;EACF;;EACD,SAAOA,YAAP;EACD,CAhBM;EAkBA,MAAMG,kBAAkB,GAAIC,WAAD,IAAiB;EACjD,MAAInR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,UAAMkR,MAAM,GAAG,EAAE,GAAGN,iBAAiB,EAAtB;EAA0B,SAAGK;EAA7B,KAAf;EACA,UAAMH,OAAO,GAAG3Q,IAAI,CAACC,SAAL,CAAe8Q,MAAf,CAAhB;EACApR,IAAAA,cAAc,CAACC,IAAf,CAAoBpH,gBAApB,EAAsC6I,kBAAkB,CAACsP,OAAD,CAAxD,EAH6C;;EAK7CK,IAAAA,wBAAwB;EACzB;EACF,CARM;;EAWA,MAAMA,wBAAwB,GAAG,MAAM;EAC5C,MAAIrR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4I,IAAI,GAAG9I,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAX;;EACA,QAAI8E,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB,UAAI;EACFA,QAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAP;EACA,cAAM2Y,WAAW,GAAGtR,cAAc,CAACO,IAAf,CAAoBzH,aAApB,IAAqCuH,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAArC,GAA0G,EAA9H;;EACA,YAAIgQ,IAAI,IAAI9I,cAAc,CAACE,wBAAf,EAAZ,EAAuD;EACrD,cAAIqR,YAAY,GAAG,EAAnB;EACA,cAAIP,OAAO,GAAGF,iBAAiB,EAA/B;EACAtU,UAAAA,MAAM,CAACgV,IAAP,CAAYR,OAAZ,EAAqBS,OAArB,CAA6B1T,GAAG,IAAI;EAClC,kBAAM2T,UAAU,GAAI5I,IAAI,IAAIwI,WAAR,IAAuB9U,MAAM,CAACgV,IAAP,CAAYF,WAAW,CAACxI,IAAD,CAAvB,EAA+B3K,MAAtD,IAAgEmT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAAjE,GAA2FuT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAA3F,GAAoH,EAAvI;EACA,kBAAM4T,SAAS,GAAGX,OAAO,CAACjT,GAAD,CAAP,CAAayJ,MAA/B;EACA,kBAAM9I,KAAK,GAAGD,QAAQ,EAAtB;EACA,kBAAMmT,QAAQ,GAAGZ,OAAO,CAACjT,GAAD,CAAP,CAAaW,KAAb,CAAjB;;EACA,gBAAI,OAAOiT,SAAP,KAAqB,WAAzB,EAAsC;EACpC,oBAAME,eAAe,GAAGrV,MAAM,CAACgV,IAAP,CAAYG,SAAZ,CAAxB;;EACA,mBAAK,MAAMlL,KAAX,IAAoBoL,eAApB,EAAqC;EACnC,oBAAIC,SAAS,GAAG,EAAhB;;EACA,oBAAID,eAAe,CAAC5U,cAAhB,CAA+BwJ,KAA/B,CAAJ,EAA2C;EACzC,sBAAIsL,MAAM,GAAG,CAAb;EACA,sBAAIC,MAAM,GAAG,CAAb;EACA,wBAAMC,UAAU,GAAGJ,eAAe,CAACpL,KAAD,CAAlC;;EACA,sBAAIwL,UAAU,KAAK,IAAnB,EAAyB;EACvB;EACD;;EACD,sBAAI,OAAOL,QAAP,KAAoB,WAApB,IAAmC,OAAOA,QAAQ,CAACK,UAAD,CAAf,KAAgC,WAAvE,EAAoF;EAClFF,oBAAAA,MAAM,GAAGH,QAAQ,CAACK,UAAD,CAAjB;EACD;;EACD,sBAAI,OAAON,SAAP,KAAqB,WAArB,IAAoC,OAAOA,SAAS,CAACM,UAAD,CAAhB,KAAiC,WAAzE,EAAsF;EACpFD,oBAAAA,MAAM,GAAGL,SAAS,CAACM,UAAD,CAAlB;EACD;;EACDH,kBAAAA,SAAS,GAAG,CAACG,UAAD,EAAaF,MAAb,EAAqBC,MAArB,CAAZ;EACAN,kBAAAA,UAAU,CAACO,UAAD,CAAV,GAAyBH,SAAzB;EACD;EACF;EACF;;EACDP,YAAAA,YAAY,GAAG,EAAE,GAAGA,YAAL;EAAmB,eAACxT,GAAD,GAAO2T;EAA1B,aAAf;EACD,WA5BD;EA6BAJ,UAAAA,WAAW,CAACxI,IAAD,CAAX,GAAoByI,YAApB;EACAvR,UAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF,OAtCD,CAsCE,OAAO3Q,CAAP,EAAU;EACVuR,QAAAA,OAAO,CAACnJ,KAAR,CAAc,0BAA0BpI,CAAxC;EACD;EACF;EACF;EACF,CA/CM;EAgDA,MAAMwR,mBAAmB,GAAG,MAAM;EACvC;EACA,QAAMrJ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;EAEA,MAAIqY,OAAO,GAAG,EAAd;;EACA,MAAIhR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4R,SAAS,GAAG,EAAhB;EACAd,IAAAA,OAAO,GAAGF,iBAAiB,EAA3B;EACA,UAAMsB,YAAY,GAAGpS,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAArB;EACA,UAAMuZ,YAAY,GAAGD,YAAY,GAAGjQ,kBAAkB,CAACiQ,YAAD,CAArB,GAAsC,IAAvE;EACA,UAAME,WAAW,GAAGD,YAAY,GAAGhS,IAAI,CAACK,KAAL,CAAW2R,YAAX,CAAH,GAA8B,IAA9D;EAEA,UAAME,WAAW,GAAI,CAAC,CAACzJ,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAFtD,GAGhBzU,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAMuB,WAAW,GAAI,CAAC,CAAC1J,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAFtD,GAGhBjW,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAM/T,KAAK,GAAGD,QAAQ,EAAtB;EACA,QAAIiU,QAAQ,GAAG,CAAf;EACA,QAAIC,QAAQ,GAAG,CAAf;;EACA,QAAI3B,OAAO,CAACC,EAAR,IAAcD,OAAO,CAACC,EAAR,CAAWvS,KAAX,CAAd,IAAmCsS,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3EF,MAAAA,QAAQ,GAAG1B,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAA7B;EACD;;EACD,QAAI5B,OAAO,CAACyB,EAAR,IAAczB,OAAO,CAACyB,EAAR,CAAW/T,KAAX,CAAd,IAAmCsS,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3ED,MAAAA,QAAQ,GAAG3B,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAA7B;EACD;;EACDd,IAAAA,SAAS,GAAG;EACVe,MAAAA,GAAG,EAAEH,QADK;EAEVI,MAAAA,IAAI,EAAEH,QAFI;EAGVI,MAAAA,GAAG,EAAER,WAHK;EAIVS,MAAAA,KAAK,EAAER;EAJG,KAAZ;EAMA,WAAOV,SAAP;EACD;EACF,CAzCM;EA2CA,MAAMmB,cAAc,GAAG,CAACC,UAAD,WAA4B;EAAA,MAAf;EAAEpV,IAAAA;EAAF,GAAe;EACxD,MAAIqV,KAAK,GAAG,KAAZ;;EACA,MAAI5W,QAAQ,CAAC2W,UAAD,CAAZ,EAA0B;EACxB,SAAK,MAAME,UAAX,IAAyBF,UAAzB,EAAqC;EACnC,UAAIA,UAAU,CAACjW,cAAX,CAA0BmW,UAA1B,CAAJ,EAA2C;EACzCD,QAAAA,KAAK,GAAG,IAAR;EACA,YAAIE,UAAU,GAAGH,UAAU,CAACE,UAAD,CAA3B;;EAEA,YAAIC,UAAU,IAAI,IAAlB,EAAwB;EACtB,iBAAOH,UAAU,CAACE,UAAD,CAAjB;EACA;EACD;;EACD,YAAIA,UAAU,KAAK,QAAf,IAA2B,CAACC,UAAU,CAACzH,KAAX,CAAiB,oEAAjB,CAAhC,EAAwH;EACtHuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaK,YAAb;EACD;;EAED,YAAIgK,UAAU,KAAK,UAAf,IAA6B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAlC,EAA+D;EAC7DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaM,cAAb;EACD;;EAED,YAAI+J,UAAU,KAAK,SAAf,IAA4B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAjC,EAA8D;EAC5DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaO,aAAb;EACD;;EAED,YAAI8J,UAAU,KAAK,WAAf,IAA8B,CAACC,UAAU,CAACzH,KAAX,CAAiB,+BAAjB,CAAnC,EAAsF;EACpFuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaQ,eAAb;EACD;;EAED,YAAI6J,UAAU,KAAK,KAAf,IAAwBC,UAAU,IAAI,IAA1C,EAAgD;EAC9C,cAAInW,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,YAAAA,UAAU,CAACI,GAAX,GAAiB,CAACD,UAAlB;EACD,WAFD,MAEO;EACLF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaS,SAAb;EACD;EACF,SAnCwC;;;EAqCzC,YAAI4J,UAAU,KAAK,KAAnB,EAA0B;EACxB,cAAI,CAAE,CAAE,OAAD,CAAU5V,IAAV,CAAe6V,UAAf,CAAD,IAA+B,CAACA,UAAU,GAAG,EAAd,EAAkBlV,MAAlB,KAA6B,EAA9D,KAAsE,CAACvB,YAAY,CAACyW,UAAD,CAAvF,EAAqG;EACnGF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaU,SAAb;EACD;;EAED,cAAI7M,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EAC5BH,YAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;EACF,SATD,MASO,IAAIzW,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EACnCH,UAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;;EAED,YAAID,UAAU,KAAK,OAAf,IAA0B,CAACtW,aAAa,CAACuW,UAAD,CAA5C,EAA0D;EACxD,cAAIA,UAAU,CAAClV,MAAX,GAAoB,CAApB,IAA0BkV,UAAU,CAACpR,MAAX,CAAkB,CAAlB,MAAyB,GAAvD,EAA6D;EAAE;EAC7DoR,YAAAA,UAAU,GAAGA,UAAU,CAACjV,SAAX,CAAqB,CAArB,EAAwBiV,UAAU,CAAClV,MAAnC,CAAb;;EACA,gBAAIjB,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,cAAAA,UAAU,CAACK,KAAX,GAAmB,CAACF,UAApB;EACD,aAFD,MAEO;EACLF,cAAAA,KAAK,GAAG,KAAR;EACArV,cAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF,WARD,MAQO;EACLwJ,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF;;EAED,YAAI,CAACwJ,KAAL,EAAY;EACV,iBAAOD,UAAU,CAACE,UAAD,CAAjB;EACD;EACF;EACF;EACF;;EACD,SAAOD,KAAP;EACD,CA5EM;EA8EA,MAAMK,gBAAgB,GAAIC,IAAD,IAAU;EACxC,QAAMC,WAAW,GAAG,EAApB;EACAA,EAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAAC1S,IAAxB;;EACA,MAAI0S,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACE,IAAZ,GAAmBH,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD,GALuC;;;EAOxC,MAAIgc,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFM,MAEA;EACLJ,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;;EAED,QAAMC,mBAAmB,GAAG,UAAUC,MAAV,EAAkB;EAC5C,QAAIA,MAAM,IAAI,IAAd,EAAoB;EAClB,UAAIC,OAAO,GAAG,EAAd;EACA,UAAIC,UAAU,GAAG,EAAjB;;EAEA,WAAK,IAAIlH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgH,MAAM,CAAC7V,MAA3B,EAAmC6O,CAAC,EAApC,EAAwC;EACtC,cAAMmH,GAAG,GAAGH,MAAM,CAAChH,CAAD,CAAlB;;EACA,YAAImH,GAAG,CAAC/I,IAAJ,IAAY,IAAhB,EAAsB;EACpB,gBAAMA,IAAI,GAAG+I,GAAG,CAAC/I,IAAjB;;EACA,cAAIA,IAAI,KAAK,iBAAb,EAAgC;EAC9B,mBAAO,UAAP;EACD,WAFD,MAEO,IAAIA,IAAI,KAAK,SAAb,EAAwB;EAC7B6I,YAAAA,OAAO,GAAG,GAAV;EACD,WAFM,MAEA,IAAI7I,IAAI,KAAK,aAAb,EAA4B;EACjC8I,YAAAA,UAAU,GAAG,GAAb;EACD;EACF;EACF;;EAED,UAAID,OAAO,KAAK,GAAhB,EAAqB;EACnB,eAAO,SAAP;EACD,OAFD,MAEO,IAAIC,UAAU,KAAK,GAAnB,EAAwB;EAC7B,eAAO,QAAP;EACD;EACF;EACF,GAzBD;;EA2BA,MAAIT,IAAI,CAACW,mBAAL,IAA4B,IAAhC,EAAsC;EACpCV,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACW,mBAAL,KAA6B,SAAjC,EAA4C;EAC1CV,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EAED,QAAMF,GAAG,GAAGJ,mBAAmB,CAACN,IAAI,CAACa,SAAN,CAA/B;;EACA,MAAIH,GAAG,IAAI,IAAX,EAAiB;EACfT,IAAAA,WAAW,CAACa,SAAZ,GAAwBJ,GAAxB;EACD;;EAED,QAAMK,IAAI,GAAIf,IAAI,CAACe,IAAL,IAAa,IAAd,GAAsBf,IAAI,CAACe,IAAL,CAAUrW,MAAhC,GAAyC,CAAtD;;EACA,MAAIqW,IAAI,GAAG,CAAX,EAAc;EACZd,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD,GAFD,MAEO;EACLf,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;;EAED,MAAIhB,IAAI,CAACiB,KAAL,IAAc,IAAlB,EAAwB;EACtBhB,IAAAA,WAAW,CAACiB,KAAZ,GAAoBlB,IAAI,CAACiB,KAAzB;EACD;;EAED,MAAIjB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMC,MAAM,GAAGpB,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAf,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACwV,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,GAAwBA,MAAM,CAAC,CAAD,CAA/B,CAAzB;EACD;;EACD,SAAOnB,WAAP;EACD,CAtEM;EAwEA,MAAMqB,mBAAmB,GAAG,CAACtB,IAAD,YAAsB;EAAA,MAAf;EAAE3V,IAAAA;EAAF,GAAe;EACvD,QAAM4V,WAAW,GAAG,EAApB;;EACA,MAAID,IAAI,CAACuB,WAAL,IAAoB,IAAxB,EAA8B;EAC5BtB,IAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAACuB,WAAxB;EACD;;EACD,MAAIvB,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACuB,IAAZ,GAAmBxB,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD;;EAED,MAAIgc,IAAI,CAACI,MAAL,IAAe,IAAnB,EAAyB;EACvB,QAAIJ,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFM,MAEA,IAAIL,IAAI,CAACI,MAAL,KAAgB,OAApB,EAA6B;EAClCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;EACF;;EAED,MAAIL,IAAI,CAACyB,KAAL,IAAc,IAAlB,EAAwB;EACtB,QAAIzB,IAAI,CAACyB,KAAL,CAAWC,SAAX,KAAyB,KAA7B,EAAoC;EAClCzB,MAAAA,WAAW,CAAC0B,KAAZ,GAAoB3B,IAAI,CAACyB,KAAL,CAAWzJ,GAAX,CAAe3J,KAAf,CAAqB,KAArB,EAA4B,CAA5B,CAApB;EACD;EACF;;EAED,MAAI2R,IAAI,CAAC4B,MAAL,IAAe,IAAnB,EAAyB;EACvB,SAAK,IAAIC,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAG7B,IAAI,CAAC4B,MAAL,CAAYlX,MAA9C,EAAsDmX,QAAQ,EAA9D,EAAkE;EAChE,YAAMC,QAAQ,GAAG9B,IAAI,CAAC4B,MAAL,CAAYC,QAAZ,CAAjB;;EACA,UAAIC,QAAQ,CAACnK,IAAT,KAAkB,SAAtB,EAAiC;EAC/BsI,QAAAA,WAAW,CAACiB,KAAZ,GAAoBY,QAAQ,CAAC7X,KAA7B;EACD;EACF;EACF;;EAED,MAAI+V,IAAI,CAAC+B,aAAL,IAAsB,IAA1B,EAAgC;EAC9B9B,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;;EACA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,IAAI,CAAC+B,aAAL,CAAmBrX,MAAvC,EAA+C6O,CAAC,EAAhD,EAAoD;EAClD,YAAMyI,MAAM,GAAGhC,IAAI,CAAC+B,aAAL,CAAmBxI,CAAnB,CAAf;;EACA,UAAIyI,MAAM,CAACrK,IAAP,KAAgB,MAApB,EAA4B;EAC1BsI,QAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;EACF;EACF;;EAED,MAAIhB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMc,QAAQ,GAAGjC,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAjB,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACqW,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAtB,GAA4BA,QAAQ,CAAC,CAAD,CAArC,CAAzB;EACD;;EAED,MAAIjC,IAAI,CAACkC,kBAAL,IAA2B,IAA/B,EAAqC;EACnCjC,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACkC,kBAAL,KAA4B,SAAhC,EAA2C;EACzCjC,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EACDvW,EAAAA,MAAM,CAACkG,KAAP,CAAa,uBAAuB3D,IAAI,CAACC,SAAL,CAAeoT,WAAf,CAApC;EAEA,SAAOA,WAAP;EACD,CA1DM;EA4DA,MAAMkC,oBAAoB,GAAG,CAAC1C,UAAD,EAAa2C,QAAb,KAA0B;EAC5D,MAAI7V,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAIuC,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;;EACA,UAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,QAAAA,GAAG,CAAC8B,gBAAJ,GAAuB,EAAvB;EACD;EACF,KAN4C;;;EAS7C,QAAI2O,UAAU,CAAC4C,OAAX,IAAsB,IAA1B,EAAgC;EAC9B,YAAMtE,IAAI,GAAG0B,UAAU,CAAC4C,OAAxB;;EACA,WAAK,MAAM/X,GAAX,IAAkByT,IAAlB,EAAwB;EACtB,YAAIA,IAAI,CAACvU,cAAL,CAAoBc,GAApB,CAAJ,EAA8B;EAC5BmV,UAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkByT,IAAI,CAACzT,GAAD,CAAtB;EACD;EACF;;EACD,aAAOmV,UAAU,CAAC4C,OAAlB;EACD;;EAED,SAAK,MAAM9Y,IAAX,IAAmBkW,UAAnB,EAA+B;EAC7B,UAAIA,UAAU,CAACjW,cAAX,CAA0BD,IAA1B,CAAJ,EAAqC;EACnC,YAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCD,IAApC,KAA6C,CAAC6Y,QAAlD,EAA4D;EAC1D;EACD;;EACDpT,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBvH,IAArB,IAA6BkW,UAAU,CAAClW,IAAD,CAAvC;EACD;EACF;;EACD,QAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAArB,IAAgC,IAApC,EAA0C;EACxC,aAAOrT,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAA5B;EACD;;EACD9V,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACD;EACF,CAjCM;EAmCA,MAAMwR,WAAW,GAAG,CAAC9D,UAAD,EAAa+D,YAAb,EAA2BnR,gBAA3B,KAAgD;EACzE,MAAIoN,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,QAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,UAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,UAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,QAAAA,kBAAkB,GAAG,EAArB;EACA9E,QAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,MAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,MAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;;EACD,MAAI1O,GAAG,CAACmC,cAAJ,IAAsB,IAA1B,EAAgC;EAC9B,UAAMsR,KAAK,GAAGzT,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,CAAd;;EACA,QAAIiE,KAAK,IAAI,IAAb,EAAmB;EACjBhV,MAAAA,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,EAA+BtV,MAA/B;;EACA,UAAIsV,KAAK,KAAK,eAAd,EAA+B;EAC7B,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAnD,EAAyD;EACvDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4CvV,MAA5C;EACD;EACF,OAJD,MAIO,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF,OAJM,MAIA,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF;EACF;EACF;EACF,CAjCM;EAmCA,MAAMwV,GAAG,GAAIC,OAAD,IAAa;EAC9B;EACA,MAAIA,OAAO,CAACzG,UAAR,IAAsB,IAAtB,IAA8ByG,OAAO,CAACzG,UAA1C,EAAsD;EACpDsC,IAAAA,OAAO,CAAClO,KAAR,CAAc,6BAAd,EAA6CqS,OAA7C;EACA,WAAO,IAAP;EACD;;EAED,QAAMC,QAAQ,GAAGD,OAAO,CAACrc,MAAD,CAAP,KAAoB,IAArC;;EAEA,MAAIgG,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C;EACA,QAAI;EACF,UAAIqW,cAAc,GAAGvW,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAArB;;EACA,UAAIkd,cAAc,IAAI,IAAlB,IAA0BD,QAA9B,EAAwC;EACtCC,QAAAA,cAAc,GAAG,EAAjB;;EACA,aAAK,MAAMxY,GAAX,IAAkBsY,OAAlB,EAA2B;EACzB,cAAIA,OAAO,CAACpZ,cAAR,CAAuBc,GAAvB,CAAJ,EAAiC;EAC/B,gBAAIsY,OAAO,CAACtY,GAAD,CAAP,KAAiB,CAAC,CAAtB,EAAyB;EACvB,qBAAOwY,cAAc,CAACxY,GAAD,CAArB;EACD,aAFD,MAEO;EACLwY,cAAAA,cAAc,CAACxY,GAAD,CAAd,GAAsBsY,OAAO,CAACtY,GAAD,CAA7B;EACD;EACF;EACF;;EACDiC,QAAAA,cAAc,CAACqC,gBAAf,CAAgChJ,UAAhC,EAA4Ckd,cAA5C;EACD;EACF,KAfD,CAeE,OAAO5V,CAAP,EAAU;EACVuR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAA+BpI,CAA7C;EACD;EACF;EACF,CA9BM;EA0EA,MAAM6V,OAAO,GAAG,CAACC,OAAD,EAAU3Y,MAAV,KAAqB;EAC1C,MAAI1B,QAAQ,CAACqa,OAAD,CAAR,IAAqBlZ,QAAQ,CAACkZ,OAAD,CAAjC,EAA4C;EAC1C,WAAO,QAAQA,OAAf;EACD;;EACD3Y,EAAAA,MAAM,CAACiL,KAAP,CAAaW,iBAAb;EACD,CALM;EAMA,MAAMgN,uBAAuB,GAAG,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,EAAuCpH,OAAvC,EAAgD3R,MAAhD,KAA2D;EAChG,QAAMgZ,aAAa,GAAGtL,YAAY,CAACjJ,QAAQ,CAAC6J,IAAV,CAAlC,CADgG;;EAEhG,QAAM2K,cAAc,GAAGD,aAAa,CAACnW,CAArC;EACA,QAAMqW,mBAAmB,GAAGF,aAAa,CAACG,CAA1C;EACA,QAAMC,QAAQ,GAAGJ,aAAa,CAACK,SAA/B;;EAEA,MAAI,OAAOJ,cAAP,KAA0B,WAA9B,EAA2C;EACzC,UAAMvW,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAAC/I,EAAL,GAAUgY,OAAO,CAAChY,EAAlB,CAFyC;;EAGzC+I,IAAAA,IAAI,CAACyE,WAAL,GAAmBxC,GAAG,CAACwC,WAAvB,CAHyC;;EAKzC,QAAIxC,GAAG,CAACyC,mBAAR,EAA6B;EAC3B1E,MAAAA,IAAI,CAAChG,eAAD,CAAJ,GAAwBiI,GAAG,CAACyC,mBAA5B;EACD;;EAED,QAAIuG,GAAG,GAAGgE,OAAO,CAACtX,QAAlB;;EACA,QAAI0e,WAAJ,EAAiB;EACfpL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,aAAN,EAAqBoL,WAArB,CAAd;EACD;;EACD,QAAID,SAAJ,EAAe;EACbnL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,SAAN,EAAiBmL,SAAjB,CAAd;EACD;;EACDnL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWsL,cAAX,CAAd;EACAtL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,EAAuB1C,MAAvB,CAAvB,CAAd;;EACA,QAAIkZ,mBAAJ,EAAyB;EACvBvL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWuL,mBAAX,CAAd;EACD;;EAED,QAAIL,YAAY,KAAK,IAArB,EAA2B;EACzBlL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAakL,YAAb,CAAd;EACD;;EAED,QAAIO,QAAJ,EAAc;EACZzU,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB0R,QAAQ,KAAK3d,MAArC;EACAkS,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,WAAN,EAAmByL,QAAnB,CAAd;EACD;;EACDhI,IAAAA,iBAAiB,CAACG,WAAlB,CAA8B5D,GAA9B;EACD;EACF,CAtCM;;;;;;;;;;;;;;ECvfQ,MAAM2L,cAAN,SAA6BrN,KAA7B,CAAmC;EAOhDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXsJ,MAAAA,OAFW;EAGXqI,MAAAA,OAHW;EAIXlF,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,8DAAezM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,4DAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACA,gGAAgCC,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5Cie,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,oFAA0BA,WAA1B;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAatO,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAED6M,EAAAA,YAAY,CAAEC,QAAF,EAAY;EACtB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI9U,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC,aAAO9B,GAAG,CAAC8B,gBAAJ,CAAqBgT,QAArB,CAAP;EACD;EACF;;EAsDD;EACF;EACA;EACA;EACA;EACA;EACA;EACEC,EAAAA,8BAA8B,CAAEzZ,GAAF,EAAOL,KAAP,EAAc+Z,OAAd,EAAuB;EAAA;;EACnD;EACA,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAAxB,IAAgC,2BAAC9B,GAAG,CAAC8B,gBAAL,0DAAC,sBAAsBtH,cAAtB,CAAqCc,GAArC,CAAD,CAApC,EAAgF;EAC9E;EACAmU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,qEAAd;EACD,KAHD,MAGO,IAAI,CAACrL,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA3B,IAAuCA,KAAK,IAAI,CAApD,EAAuD;EAC5DwU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,yCAAd;EACD,KAFM,MAEA;EACL;EACA,UAAI0O,OAAO,KAAK1c,iBAAhB,EAAmC;EACjC0H,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD,OAFD,MAEO;EACL+E,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD;;EACDsC,MAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C,EAPK;;EAUL,UAAI/D,IAAI,GAAG,EAAX;EACA,YAAM0S,UAAU,GAAG,EAAnB;EACA1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA8H,MAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkB;EAAE,SAAC0Z,OAAD,GAAW/Z;EAAb,OAAlB;;EACA,UAAIwV,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,QAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EAEA,gEAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,YAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,gEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEuT,EAAAA,oBAAoB,CAAEja,GAAF,EAAOka,QAAP,EAAiBR,OAAjB,EAA0B;EAC5C,UAAMS,KAAK,GAAG,EAAd;;EACA,SAAK,IAAIlL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiL,QAAQ,CAAC9Z,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,UAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAvB,CAAxC,EAAqE;EACnEkL,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAnB;EACD,OAFD,MAEO,IAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAf,CAAxC,EAAmF;EACxFD,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAX;EACD,OAFM,MAEA;EACLjG,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kDAAd;EACD;EACF;;EACD,QAAItG,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAAA;;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,4BAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB,yEAAuE,EAAvE;EACD;;EACDsJ,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4Bma,KAA5B;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBra,GAAxB,EAA6Bka,QAA7B,EAAuCR,OAAvC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,oBAAoB,CAAEC,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC/C,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,UAAMqf,aAAa,GAAG/V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAtB;EACA,UAAMJ,KAAK,GAAGnO,KAAK,CAACC,OAAN,CAAcwO,aAAd,IAA+BA,aAA/B,GAAgDA,aAAa,IAAI,IAAjB,GAAwB,CAACA,aAAD,CAAxB,GAA0C,EAAxG;;EAEA,UAAMC,QAAQ,GAAI/a,KAAD,IAAW;EAC1B,YAAMgb,eAAe,GAAG,OAAOhb,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACya,WAAN,EAA5D;;EACA,UAAI,CAACD,KAAK,CAAC/M,QAAN,CAAeuN,eAAf,CAAL,EAAsC;EACpCR,QAAAA,KAAK,CAAChS,IAAN,CAAWwS,eAAX;EACD;EACF,KALD;;EAOA,QAAI3O,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgB/T,KAAK,IAAI;EACvB,YAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D+a,UAAAA,QAAQ,CAAC/a,KAAD,CAAR;EACD,SAFD,MAEO;EACL,kEAAaqL,KAAb,CAAmB,kDAAnB;EACD;EACF,OAND;EAOD,KARD,MAQO,IAAI,OAAOwP,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEE,MAAAA,QAAQ,CAACF,OAAD,CAAR;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,wBAAnB;;EACA;EACD;;EAEDtG,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,IAAgCJ,KAAhC;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEkB,EAAAA,uBAAuB,CAAEL,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAClD,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,QAAI,CAACsJ,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCqb,OAApC,CAAL,EAAmD;EACjD,8DAAavP,KAAb,wBAAmCuP,OAAnC;;EACA;EACD;;EAED,UAAMM,WAAW,GAAIlb,KAAD,IAAW;EAC7B,YAAM+I,KAAK,GAAGhE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpW,OAA9B,CAAsCxE,KAAtC,CAAd;;EACA,UAAI+I,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChBhE,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpR,MAA9B,CAAqCT,KAArC,EAA4C,CAA5C;EACD;EACF,KALD;;EAOA,QAAIsD,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgBmH,WAAhB;EACD,KAFD,MAEO,IAAI,OAAOL,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEK,MAAAA,WAAW,CAACL,OAAD,CAAX;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,0BAAnB;;EACA;EACD,KAxBiD;;;EA2BlD,QAAItG,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8Bna,MAA9B,KAAyC,CAA7C,EAAgD;EAC9C,aAAOsE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;EACEoB,EAAAA,uBAAuB,CAAEP,OAAF,EAAWb,OAAX,EAAoB;EAAA;;EACzC,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAI,EAACsJ,GAAD,aAACA,GAAD,iDAACA,GAAG,CAAE8B,gBAAN,2DAAC,uBAAuBtH,cAAvB,CAAsCqb,OAAtC,CAAD,CAAJ,EAAqD;EACnD,8DAAavP,KAAb,wBAAmCuP,OAAnC;EACD,KAFD,MAEO;EACL,aAAO7V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiC,IAAjC,EAAuCb,OAAvC;EACD;;EAEDW,EAAAA,kBAAkB,CAAEE,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC7C;EACA,QAAIjX,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA1S,IAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ,CAJ6C;;EAO7C8H,IAAAA,UAAU,CAACoF,OAAD,CAAV,GAAsB;EAAE,OAACb,OAAD,GAAWA,OAAO,KAAKrc,cAAZ,GAA6B,IAA7B,GAAoCmd;EAAjD,KAAtB;;EACA,QAAIrF,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,MAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,IAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,8DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,UAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,8DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;EAzS+C;;6DAiD1BqU,YAAY;EAChC,MAAI/O,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAI,CAACjc,aAAa,CAACqc,eAAD,CAAd,IAAoC,CAACA,eAAe,CAACpQ,KAAzD,EAAiE;EAC/DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA0C,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB;;EACA,gBAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,cAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EACF;EACF;EACF;;;;;;;;;;;;;;;;;;;;;;ECrFY,MAAM2U,gBAAN,SAA+BrP,KAA/B,CAAqC;EAQlDvS,EAAAA,WAAW,OAOX8S,MAPW,EAOH;EAAA,QAPK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGXnI,MAAAA,OAHW;EAIXxJ,MAAAA,MAJW;EAKXuJ,MAAAA;EALW,KAOL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,gEAAgBD,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,gEAAgBnI,OAAhB;EACA,8DAAexJ,MAAf;EACA,oEAAkBwM,MAAlB;EACA,8DAAejD,MAAf;EACD,GAvBiD;;;EA0LlDgS,EAAAA,KAAK,GAAI;EACP,4DAAarV,KAAb,CAAmB,wCAAnB;;EACA;;EACAhE,IAAAA,cAAc,CAACsD,WAAf,CAA2B9K,KAA3B,EAAkC,IAAlC;EACD;;EAkED0N,EAAAA,IAAI,GAAkB;EAAA,sCAAbmR,WAAa;EAAbA,MAAAA,WAAa;EAAA;;EACpB,8EAAwBA,WAAxB;;EACA,WAAO,CAAP;EACD;;EAED5M,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EA1QiD;;2CA0BrCqO,YAAY;EACvB,MAAIvJ,WAAW,GAAG,IAAlB;EACAvP,EAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;;EACA,QAAM+J,MAAM,GAAIC,GAAD,IAAS;EACtB,QAAI7V,CAAC,GAAG1D,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAR;EACA,UAAM4gB,CAAC,GAAGxZ,cAAc,CAAC2C,kBAAf,CAAkChK,YAAlC,CAAV;EACA,QAAI8gB,GAAJ;;EACA,QAAI/V,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACA+V,MAAAA,GAAG,GAAGF,GAAN;EACD,KAHD,MAGO;EACL;EACAE,MAAAA,GAAG,GAAG/V,CAAC,CAACjM,EAAR;EACA,UAAIiiB,aAAa,GAAG,KAApB;EACA,UAAIC,YAAY,GAAG,KAAnB;;EACA,UAAIF,GAAG,IAAI,IAAX,EAAiB;EACfA,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACAG,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACD,UAAIjX,GAAG,CAAC3I,SAAJ,IAAiB,IAAjB,IAAyBkG,cAAc,CAACE,wBAAf,EAA7B,EAAwE;EACtEuC,QAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,UAAI2f,aAAJ,EAAmB;EACjB,YAAKF,CAAD,IAAO,IAAX,EAAiB;EACf;EACA/W,UAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBD,CAAvB;EACA/W,UAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD;EACF,OAND,MAMO;EACL;EACA;EACA,aAAK,MAAM1C,GAAX,IAAkBwX,GAAlB,EAAuB;EACrB,cAAIA,GAAG,CAACtc,cAAJ,CAAmB8E,GAAnB,CAAJ,EAA6B;EAC3B,kBAAMtK,EAAE,GAAG8hB,GAAG,CAACxX,GAAD,CAAd;;EACA,gBAAIU,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBvO,EAApB,CAAJ,EAA6B;EAC3BgiB,cAAAA,GAAG,GAAGhiB,EAAN;EACAkiB,cAAAA,YAAY,GAAG,IAAf;EACA;EACD;EACF;EACF;EACF;;EAED,UAAIA,YAAJ,EAAkB;EAChB,YAAIF,GAAG,KAAKhX,GAAG,CAAC3I,SAAJ,CAAcgN,UAAd,EAAZ,EAAwC;EACtC;EACA;EACA;EACD,SAJD,MAIO;EACLyI,UAAAA,WAAW,GAAG,KAAd;EACAvP,UAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;EACD;;EACD,cAAMqK,UAAU,GAAGnX,GAAG,CAAC3I,SAAJ,CAAcqM,GAAd,CAAkBsT,GAAlB,CAAnB;EACAhX,QAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBG,UAAvB;EACA5Z,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CihB,UAA9C;EACA,gEAAaxV,OAAb,GAAuBwV,UAAvB;EAEA,cAAMxR,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E;EACA,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB;;EACA,oEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF,OApBD,MAoBO;EACL,YAAI,CAACqR,aAAL,EAAoB;EAClB,eAAKL,KAAL;EACD,SAFD,MAEO;EACL,cAAKG,CAAD,IAAO,IAAX,EAAiB;EACf,oEAAapV,OAAb,GAAuBoV,CAAvB;EACAxZ,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6gB,CAA9C;EACAjK,YAAAA,WAAW,GAAG,KAAd;EACD;EACF;;EACDvP,QAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACA4e,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACD;EACF;;EACD7V,IAAAA,CAAC,CAACjM,EAAF,GAAOgiB,GAAP;EACAzZ,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzJ,YAAhC,EAA8C8K,CAA9C;EACD,GA7ED;;EA+EA,MAAIqG,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAIjc,aAAa,CAACqc,eAAD,CAAb,IAAmC,CAACA,eAAe,CAACpQ,KAAxD,EAAgE;EAC9DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA,gBAAMqG,GAAG,GAAG,EAAZ;;EACA,cAAIvZ,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAIgT,UAAU,CAAC2G,QAAf,EAAyB;EACvBN,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAAC2G,QAApB;EACD;;EACD,gBAAI3G,UAAU,CAACyB,KAAf,EAAsB;EACpB4E,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAACyB,KAApB;EACD;;EACD,gBAAIzB,UAAU,CAAC+B,IAAf,EAAqB;EACnBsE,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAAC+B,IAA5B;EACD;;EACD,gBAAI/B,UAAU,CAACU,IAAf,EAAqB;EACnB2F,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAACU,IAA5B;EACD;;EACD,gBAAI2F,GAAG,CAACpb,MAAJ,GAAa,CAAjB,EAAoB;EAClBmb,cAAAA,MAAM,CAACC,GAAD,CAAN;EACD;EACF;;EACD3D,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB,EA7BsD;EA+BtD;EACA;;;EACA,cAAI+O,WAAJ,EAAiB;EACf/O,YAAAA,IAAI,CAACxG,MAAD,CAAJ,GAAe,IAAf;EACD;;EACD,gBAAM8d,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,cAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB,CAvCsD;EA0CtD;EACA;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD,EAAgE8K,WAAhE;EACD;EACF;EACF;EACF;EACF;;mEAQyB;EACxB9M,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACAyN,EAAAA,OAAO,CAAClO,KAAR,CAAc,wBAAd;;EACA,MAAIhE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;;EACA,4DAAc0F,sBAAd,CAAqC,EAArC;EACD;;6CAEc;EACbhG,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;;EACA,0DAAaT,KAAb,CAAmB,uBAAnB;;EACAvB,EAAAA,GAAG,CAACC,WAAJ,GAAkB;EAChB0B,IAAAA,OAAO,EAAE,IADO;EAEhBC,IAAAA,KAAK,EAAE,CAFS;EAGhBC,IAAAA,MAAM,EAAE;EAHQ,GAAlB;;EAKA,MAAItE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAACxH,YAAD,CAAnB;EACA,WAAOwH,YAAY,CAACvH,YAAD,CAAnB;EACA,WAAOuH,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BnI,YAA5B,EAA0C8J,GAAG,CAACM,WAA9C;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4BlI,YAA5B,EAA0C2T,WAAW,EAArD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;EACA,0DAAaqB,OAAb,GAAuB,IAAvB;;EACA,4DAAcqE,sBAAd,CAAqC,EAArC;EACD;;yDAEmBsR,UAAU;EAC5B,MAAIhQ,KAAK,CAACC,OAAN,CAAc+P,QAAd,KAA2BA,QAAQ,CAAC5b,MAAT,GAAkB,CAAjD,EAAoD;EAClD,UAAM+U,UAAU,GAAG6G,QAAQ,CAACC,GAAT,EAAnB;EACA,UAAMC,cAAc,GAAG/G,UAAU,IAAI,IAAd,IAAsB3W,QAAQ,CAAC2W,UAAD,CAA9B,KACjBA,UAAU,CAAC8F,IAAX,IAAmB,IAAnB,IAA2Bxc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC8F,IAAvB,EAA6B7a,MAA7B,GAAsC,CAAlE,IACI+U,UAAU,CAAC+F,QAAX,IAAuB,IAAvB,IAA+Bzc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC+F,QAAvB,EAAiC9a,MAAjC,GAA0C,CAD7E,IAEI+U,UAAU,CAAC,aAAD,CAAV,IAA6B,IAA7B,IAAqC1W,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC,aAAD,CAAtB,EAAuC/U,MAAvC,GAAgD,CAHvE,CAAvB;;EAIA,QAAI8b,cAAJ,EAAoB;EAClBja,MAAAA,cAAc,CAACyD,uBAAf;;EACA,UAAI;EACF,oEAAiB,CAACyP,UAAD,CAAjB;EACD,OAFD,CAEE,OAAOvS,CAAP,EAAU;EACV,gEAAaqD,KAAb,CAAmBrD,CAAnB;EACD;EACF,KAPD,MAOO;EACL,8DAAaoI,KAAb,CAAmB,uCAAnB;EACD;EACF;EACF;;EC9RI,MAAMmR,mBAAN,SAAkCC,WAAlC,CAA8C;EACnD3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKb4iB,OALa,GAKH,IALG;EAAA,SAMbC,QANa,GAMF,IANE;EAAA,SAObC,MAPa,GAOJ,IAPI;EAAA,SAQbC,KARa,GAQL,IARK;EAAA,SASbC,SATa,GASD,IATC;EAAA,SAUbC,cAVa,GAUI,IAVJ;EAEb,SAAKH,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EASC,MAAIC,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKuc,oBAAL;EACD;EACF;;EAED,MAAIvT,OAAJ,GAAe;EACb,WAAO,KAAK+S,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI/S,OAAJ,CAAahJ,GAAb,EAAkB;EAChB,SAAK+b,QAAL,GAAgB/b,GAAhB;EACD;;EAED,MAAIwc,KAAJ,GAAa;EACX,WAAO,KAAKF,MAAL,CAAYG,OAAnB;EACD;;EAED,MAAIC,OAAJ,GAAe;EACb,WAAO,KAAKJ,MAAL,CAAYK,UAAnB;EACD;;EAED,MAAIC,UAAJ,GAAkB;EAChB,WAAO,KAAKN,MAAL,CAAYO,OAAZ,CAAoBD,UAA3B;EACD;;EAEDL,EAAAA,oBAAoB,GAAI;EACtB,UAAM5I,UAAU,GAAG,KAAK2I,MAAL,CAAYG,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAnB;EACA,UAAM+C,gBAAgB,GAAG,KAAKyC,OAAL,CAAa8T,SAAtC;EAEA,SAAKd,MAAL,CAAYe,SAAZ,GAAwB,KAAKC,wBAAL,EAAxB;EACA,SAAKf,KAAL,GAAa,KAAKgB,UAAL,CAAgBpF,cAAhB,CAA+B,gBAA/B,CAAb;EACA,SAAKqE,SAAL,GAAiB,KAAKe,UAAL,CAAgBpF,cAAhB,CAA+B,WAA/B,CAAjB;EACA,SAAKqF,SAAL,GAAiB,KAAKD,UAAL,CAAgBpF,cAAhB,CAA+B,OAA/B,CAAjB;EAEA,SAAKoE,KAAL,CAAWkB,gBAAX,CAA4B,MAA5B,EAAoC,KAAKC,4BAAL,EAApC;EACA,SAAKjB,cAAL,GAAsB,IAAIkB,cAAJ,CAAmB,MAAM,KAAKC,YAAL,CAAkB,KAAKrB,KAAvB,EAA8B,KAAKC,SAAnC,CAAzB,CAAtB;EACA,SAAKC,cAAL,CAAoBoB,OAApB,CAA4B,KAAKtB,KAAjC;EAEA,SAAKiB,SAAL,CAAeC,gBAAf,CAAgC,OAAhC,EAAyC,MAAM;EAC7C,WAAKhB,cAAL,CAAoBqB,SAApB,CAA8B,KAAKvB,KAAnC;EACArZ,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDZ,OAAlD,GAA4D,MAA5D;EACA,WAAKva,MAAL;;EACA,UAAIqR,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,YAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,cAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,cAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,YAAAA,kBAAkB,GAAG,EAArB;EACA9E,YAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,UAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,UAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;EACF,KAjBD;EAmBA/O,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;;EAEA,QAAI,KAAKE,UAAT,EAAqB;EACnB,WAAKX,KAAL,CAAWkB,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,aAAKb,MAAL,CAAYO,OAAZ,CAAoB/Y,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAY,KAAKf,UAAjB,EAA6B,QAA7B,CAA7B,GAAsE9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B,KAAK8O,UAAzG;EACA9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAHD;EAID;EACF;;EAEDY,EAAAA,YAAY,CAAErB,KAAF,EAASC,SAAT,EAAoB;EAC9B,UAAM4B,KAAK,GAAG,KAAKC,qBAAL,CAA2B9B,KAA3B,CAAd;EACAC,IAAAA,SAAS,CAACuB,KAAV,CAAgBO,WAAhB,CAA4B,OAA5B,YAAwCF,KAAxC;EACD;;EAEDd,EAAAA,wBAAwB,GAAI;EAC1B,+BACI,KAAKV,MAAL,CAAY2B,UAAZ,CAAuBC,GAD3B,uBAEI,KAAK5B,MAAL,CAAY2B,UAAZ,CAAuBE,IAF3B;EAID;;EAEDf,EAAAA,4BAA4B,GAAI;EAC9B,WAAO,MAAM;EACX,YAAMU,KAAK,GAAG,KAAKC,qBAAL,CAA2B,KAAK9B,KAAhC,CAAd;EACA,WAAKA,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,OAA7B,YAAyCF,KAAzC;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,OAAjC,YAA6CF,KAA7C;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,QAAjC,EAA2C,MAA3C;EACA,WAAK9B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,UAAjC,EAA6C,OAA7C;EACA,WAAK/B,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,YAA7B,EAA2C,SAA3C;EACA,WAAKd,SAAL,CAAeO,KAAf,CAAqBO,WAArB,CAAiC,YAAjC,EAA+C,SAA/C;EACApb,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDW,UAAlD,GAA+D,SAA/D;EACD,KATD;EAUD;;EAEDL,EAAAA,qBAAqB,CAAEM,GAAF,EAAO;EAC1B,UAAMC,KAAK,GAAGD,GAAG,CAACE,YAAJ,GAAmBF,GAAG,CAACG,aAArC;EACA,WAAOH,GAAG,CAACI,MAAJ,GAAaH,KAApB;EACD;;EAlHgD;;ECL9C,MAAMI,OAAN,SAAsB7C,WAAtB,CAAkC;EACvC3iB,EAAAA,WAAW,CAAEylB,MAAF,EAAUC,OAAV,EAAmB;EAC5B;EAD4B,SAQ9BC,OAR8B,GAQpB,IARoB;EAAA,SAS9BC,QAT8B,GASnB,IATmB;EAE5B,SAAK9C,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACA,SAAKsC,MAAL,GAAcA,MAAd;EACA,SAAKC,OAAL,GAAeA,OAAf;EACA,SAAKG,aAAL,CAAmBH,OAAnB;EACD;;EAKD,MAAIlC,OAAJ,GAAe;EACb,WAAO,KAAKkC,OAAL,CAAajC,UAApB;EACD;;EAED,MAAIhJ,UAAJ,GAAkB;EAChB,WAAO,KAAKiL,OAAL,CAAanC,OAApB;EACD;;EAEDuC,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDH,EAAAA,aAAa,CAAEI,GAAF,EAAO;EAClB,SAAKN,OAAL,GAAe,KAAKG,QAAL,CAAc,KAAd,EAAqB,gBAArB,CAAf;;EAEA,YAAQG,GAAG,CAACC,YAAZ;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,gBAAMR,OAAO,GAAG,KAAKS,mBAAL,CAAyBF,GAAG,CAACA,GAAJ,CAAQ,CAAR,CAAzB,CAAhB;EACA,eAAKN,OAAL,CAAatM,WAAb,CAAyBqM,OAAzB;EACD;EANH;;EASA,UAAMU,SAAS,GAAG,KAAKN,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAM,IAAAA,SAAS,CAACvC,SAAV,mBAA+BwC,sBAAsB,CAACJ,GAAG,CAAChmB,EAAJ,CAAOqK,KAAP,CAAa,GAAb,EAAkB,CAAlB,CAAD,CAArD;;EACA,QAAI,CAAC2b,GAAG,CAACK,MAAT,EAAiB;EACf,YAAMC,YAAY,GAAG,KAAKT,QAAL,CAAc,MAAd,EAAsB,cAAtB,CAArB;EACAM,MAAAA,SAAS,CAAC/M,WAAV,CAAsBkN,YAAtB;EACD;;EAED,SAAKZ,OAAL,CAAatM,WAAb,CAAyB+M,SAAzB;EACA,SAAKtD,MAAL,CAAYzJ,WAAZ,CAAwB,KAAKsM,OAA7B;EACD;;EAEDQ,EAAAA,mBAAmB,CAAEF,GAAF,EAAO;EACxB,UAAMP,OAAO,GAAG,KAAKI,QAAL,CAAc,KAAd,EAAqB,SAArB,CAAhB;;EAEA,QAAIG,GAAG,CAACO,QAAR,EAAkB;EAChB,YAAMC,cAAc,GAAG,KAAKC,QAAL,CAAcT,GAAG,CAACO,QAAlB,EAA4B,SAA5B,CAAvB;EACAd,MAAAA,OAAO,CAACrM,WAAR,CAAoBoN,cAApB;EACD;;EACD,UAAME,oBAAoB,GAAG,KAAKb,QAAL,CAAc,KAAd,EAAqB,sBAArB,CAA7B;;EACA,QAAIG,GAAG,CAACW,OAAR,EAAiB;EACf,YAAMC,aAAa,GAAG,KAAKH,QAAL,CAAcT,GAAG,CAACW,OAAlB,EAA2B,SAA3B,CAAtB;EACAD,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EACD;;EACD,UAAMC,gBAAgB,GAAG,KAAKhB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;;EACA,QAAIG,GAAG,CAACc,KAAR,EAAe;EACb,YAAMA,KAAK,GAAG,KAAKjB,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAd;EACAiB,MAAAA,KAAK,CAACC,SAAN,GAAkBf,GAAG,CAACc,KAAtB;EACAD,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B0N,KAA7B;EACD;;EACD,QAAId,GAAG,CAACgB,WAAR,EAAqB;EACnB,YAAMA,WAAW,GAAG,KAAKnB,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAmB,MAAAA,WAAW,CAACD,SAAZ,GAAwBf,GAAG,CAACgB,WAA5B;EACAH,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B4N,WAA7B;EACD;;EACD,QAAIhB,GAAG,CAACc,KAAJ,IAAad,GAAG,CAACgB,WAArB,EAAkC;EAChCN,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EACD;;EAED,QAAIb,GAAG,CAACW,OAAJ,IAAeX,GAAG,CAACc,KAAnB,IAA4Bd,GAAG,CAACgB,WAApC,EAAiD;EAC/CvB,MAAAA,OAAO,CAACrM,WAAR,CAAoBsN,oBAApB;EACD;;EACD,QAAIV,GAAG,CAACiB,OAAJ,IAAejB,GAAG,CAACiB,OAAJ,CAAYvgB,MAA/B,EAAuC;EACrC,YAAMwgB,gBAAgB,GAAG,KAAKC,UAAL,CAAgBnB,GAAG,CAACiB,OAApB,CAAzB;EACAxB,MAAAA,OAAO,CAACrM,WAAR,CAAoB8N,gBAApB;EACD;;EACD,WAAOzB,OAAP;EACD;;EAED0B,EAAAA,UAAU,GAAgB;EAAA,QAAdF,OAAc,uEAAJ,EAAI;EACxB,UAAMC,gBAAgB,GAAG,KAAKrB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;EACA,QAAIuB,aAAa,GAAG,KAApB;EACAH,IAAAA,OAAO,CAACjN,OAAR,CAAgB,CAACqN,CAAD,EAAI9R,CAAJ,KAAU;EACxB,YAAM+R,MAAM,GAAG,KAAKzB,QAAL,CAAc,QAAd,mBAAkCtQ,CAAlC,GAAuC,QAAvC,CAAf;EACA+R,MAAAA,MAAM,CAACP,SAAP,GAAmBM,CAAC,CAACE,IAArB;;EACA,UAAIhS,CAAC,GAAG,CAAR,EAAW;EACT+R,QAAAA,MAAM,CAAChD,KAAP,CAAakD,OAAb,IAAwB,mBAAxB;EACD;;EACD,UAAIH,CAAC,CAACI,MAAF,KAAa,MAAjB,EAAyB;EACvBL,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACDF,MAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BkO,MAA7B;EACD,KAVD;;EAWA,QAAIF,aAAJ,EAAmB;EACjB,WAAKM,WAAL,CAAiBR,gBAAjB;EACD;;EACD,WAAOA,gBAAP;EACD;;EAEDQ,EAAAA,WAAW,CAAER,gBAAF,EAAoB;EAC7B,SAAKvB,QAAL,GAAgB,KAAKE,QAAL,CAAc,KAAd,qBAAiC,KAAKrL,UAAtC,GAAoD,UAApD,CAAhB;EACA,SAAKmL,QAAL,CAAc/B,SAAd,GAA0B+D,YAA1B;EACA,UAAMC,YAAY,GAAG,KAAK/B,QAAL,CAAc,MAAd,yBAAsC,KAAKrL,UAA3C,GAAyD,cAAzD,CAArB;EACAoN,IAAAA,YAAY,CAACb,SAAb,GAAyB,qBAAzB;EACA,SAAKpB,QAAL,CAAcvM,WAAd,CAA0BwO,YAA1B;EACAV,IAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B,KAAKuM,QAAlC;EACD;;EAEDc,EAAAA,QAAQ,CAAEzS,GAAF,EAAOL,IAAP,EAAa;EACnB,UAAM6S,cAAc,GAAG,KAAKX,QAAL,CAAc,KAAd,YAAwBlS,IAAxB,eAAvB;EACA,UAAM8J,KAAK,GAAG,KAAKoI,QAAL,CAAc,KAAd,EAAqBlS,IAArB,CAAd;EACA8J,IAAAA,KAAK,CAACxE,YAAN,CAAmB,KAAnB,EAA0BjF,GAA1B,EAHmB;;EAKnByJ,IAAAA,KAAK,CAACxE,YAAN,CAAmB,SAAnB,EAA8B,MAA9B;EACAuN,IAAAA,cAAc,CAACpN,WAAf,CAA2BqE,KAA3B;EACA,WAAO+I,cAAP;EACD;;EAEDqB,EAAAA,iBAAiB,CAAEC,IAAF,EAAQC,SAAR,EAAmB;EAClC,YAAQ,KAAKtC,OAAL,CAAaQ,YAArB;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,eAAK+B,6BAAL,CAAmCF,IAAnC,EAAyCC,SAAzC;EACD;EALH;EAOD;;EAEDC,EAAAA,6BAA6B,CAAEF,IAAF,EAAQC,SAAR,EAAmB;EAC9C,UAAM/B,GAAG,GAAG,KAAKP,OAAL,CAAaO,GAAb,CAAiB,CAAjB,CAAZ;EACA,UAAMiC,OAAO,GAAG;EAAE5E,MAAAA,KAAK,EAAE,KAAK7I,UAAd;EAA0B+I,MAAAA,OAAO,EAAE,KAAKA;EAAxC,KAAhB;;EACA,QAAIuE,IAAI,CAACI,OAAL,KAAiB,QAArB,EAA+B;EAC7B,YAAMloB,EAAE,GAAG8nB,IAAI,CAAC9nB,EAAL,CAAQqK,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAX;EACA,YAAMid,MAAM,GAAGtB,GAAG,CAACiB,OAAJ,CAAYjnB,EAAZ,CAAf;EACAioB,MAAAA,OAAO,CAACE,EAAR,GAAa;EACXC,QAAAA,QAAQ,EAAEd,MAAM,CAACC;EADN,OAAb;;EAGA,UAAID,MAAM,CAACG,MAAP,KAAkB,KAAtB,EAA6B;EAC3BH,QAAAA,MAAM,CAACe,eAAP,GAAyB1d,MAAM,CAAC6Z,IAAP,CAAY8C,MAAM,CAACtT,GAAnB,EAAwB,QAAxB,CAAzB,GAA8DrJ,MAAM,CAACG,QAAP,GAAkBwc,MAAM,CAACtT,GAAvF;EACD,OAFD,MAEO,IAAIsT,MAAM,CAACG,MAAP,KAAkB,MAAtB,EAA8B;EACnC9c,QAAAA,MAAM,CAAC2d,KAAP;EACAC,QAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BnB,MAAM,CAACoB,aAArC;EACA,aAAK/C,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACApM,QAAAA,UAAU,CAAC,MAAM;EACf,eAAKkN,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACD,SAFS,EAEP,IAFO,CAAV;EAGD;EACF,KAhBD,MAgBO,IAAIiD,IAAI,CAACI,OAAL,KAAiB,kBAAjB,IAAuClC,GAAG,CAACvC,UAA/C,EAA2D;EAChEuC,MAAAA,GAAG,CAACqC,eAAJ,GAAsB1d,MAAM,CAAC6Z,IAAP,CAAYwB,GAAG,CAACvC,UAAhB,EAA4B,QAA5B,CAAtB,GAA+D9Y,MAAM,CAACG,QAAP,GAAkBkb,GAAG,CAACvC,UAArF;EACD;;EACD,QAAIsE,SAAJ,EAAe;EACbtN,MAAAA,OAAO,CAACkO,GAAR,CAAY,sEAAZ,EAAoFV,OAApF;EACD,KAFD,MAEO;EACLtd,MAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD;EACF;;EAnKsC;;ECDlC,MAAMW,aAAa,GAAG,UAAqH;EAAA,MAApH;EAAEC,IAAAA,eAAF;EAAmBC,IAAAA,WAAnB;EAAgCC,IAAAA,UAAhC;EAA4CC,IAAAA,gBAA5C;EAA8DC,IAAAA,WAA9D;EAA2EC,IAAAA,eAA3E;EAA4FC,IAAAA;EAA5F,GAAoH;EAChJ,kNAM0BN,eAN1B,2CAO0BC,WAP1B,w/BA2CeC,UA3Cf,mLAiDeC,gBAjDf,0FAoD0BC,WApD1B,gCAqDeC,eArDf,87CAyG0BC,iBAzG1B;EAmHD,CApHM;EAsHA,MAAMC,oBAAoB,GAAG,WAa9B;EAAA,MAb+B;EACnCC,IAAAA,oBADmC;EAEnCC,IAAAA,gBAFmC;EAGnCC,IAAAA,qBAHmC;EAInCC,IAAAA,gBAJmC;EAKnCC,IAAAA,cALmC;EAMnCC,IAAAA,kBANmC;EAOnCC,IAAAA,oBAPmC;EAQnCC,IAAAA,qBARmC;EASnCC,IAAAA,wBATmC;EAUnCC,IAAAA,0BAVmC;EAWnCC,IAAAA,2BAXmC;EAYnCC,IAAAA;EAZmC,GAa/B;EACJ,8QAQ4BX,oBAR5B,6CAS4BC,gBAT5B,6iBAgC4BC,qBAhC5B,4DAiC2CA,qBAjC3C,kCAkCiBC,gBAlCjB,oLA0CiBC,cA1CjB,mtCA4F6CJ,oBA5F7C,kBA4FyEA,oBA5FzE,qBA4FwGA,oBA5FxG,6LAmG8CA,oBAnG9C,kBAmG0EA,oBAnG1E,qBAmGyGA,oBAnGzG,sRA6G4BK,kBA7G5B,kCA8GiBC,oBA9GjB,uJAmHkBC,qBAAqB,GAAG,eAAeA,qBAAlB,GAA0C,MAnHjF,2GAuH4BC,wBAvH5B,kCAwHiBC,0BAxHjB,mCAyHkBC,2BAA2B,GAAG,eAAeA,2BAAlB,GAAgD,MAzH7F,4uBAiJsDC,oBAjJtD;EAuJD,CArKM;;EChHA,MAAMC,KAAN,SAAoBvH,WAApB,CAAgC;EACrC3iB,EAAAA,WAAW,CAAEsG,MAAF,EAAU;EACnB;EADmB,SAMrB6jB,WANqB,GAMP,KANO;EAAA,SAOrBC,kBAPqB,GAOA,KAPA;EAAA,SAQrBC,gBARqB,GAQF,IARE;EAAA,SASrBC,gBATqB,GASF,EATE;EAAA,SAUrBC,eAVqB,GAUH,CAVG;EAAA,SAWrBvC,SAXqB,GAWT,KAXS;EAAA,SAYrBwC,qBAZqB,GAYG,EAZH;EAAA,SAerBC,aAfqB,GAeL,IAfK;EAAA,SAgBrB9c,KAhBqB,GAgBb,IAhBa;EAAA,SAiBrB+c,aAjBqB,GAiBL,IAjBK;EAAA,SAkBrBC,SAlBqB,GAkBT,IAlBS;EAAA,SAmBrBC,aAnBqB,GAmBL,IAnBK;EAAA,SAoBrBC,QApBqB,GAoBV,IApBU;EAAA,SAqBrBC,mBArBqB,GAqBC,IArBD;;EAAA,SAsWrBC,0BAtWqB,GAsWQ,CAAC,MAAM;EAClC,aAAQ5hB,CAAD,IAAO;EACZ,YAAIA,CAAC,CAAC6hB,YAAF,GAAiBrX,QAAjB,CAA0B,KAAKhG,KAA/B,CAAJ,EAA2C;EACzC;EACA,gBAAMoa,IAAI,GAAG5e,CAAC,CAAC4e,IAAF,IAAW5e,CAAC,CAAC6hB,YAAF,IAAkB7hB,CAAC,CAAC6hB,YAAF,EAA1C;;EACA,cAAIjD,IAAI,CAACphB,MAAT,EAAiB;EACf,kBAAM1G,EAAE,GAAG8nB,IAAI,CAAC,CAAD,CAAJ,CAAQ9nB,EAAnB;;EACA,gBAAIA,EAAE,KAAK,YAAX,EAAyB;EACvB,mBAAKgrB,WAAL;EACD,aAFD,MAEO,IAAIhrB,EAAE,CAACirB,UAAH,CAAc,WAAd,CAAJ,EAAgC;EACrC,mBAAKC,eAAL,GAAuB,KAAKL,mBAA5B;EACA,mBAAKA,mBAAL,GAA2B/C,IAAI,CAAC,CAAD,CAA/B;EACA,mBAAKqD,oBAAL,CAA0BrD,IAAI,CAAC,CAAD,CAAJ,CAAQf,SAAlC;EACD,aAJM,MAIA;EACL,oBAAMqE,KAAK,GAAGtD,IAAI,CAACuD,MAAL,CAAa7L,CAAD;EAAA;;EAAA,uBAAO,UAAAA,CAAC,CAACxf,EAAF,gDAAMirB,UAAN,CAAiB,SAAjB,MAA+BzL,CAAC,CAAC0I,OAAF,KAAc,kBAApD;EAAA,eAAZ,CAAd;;EACA,kBAAIkD,KAAK,CAAC1kB,MAAV,EAAkB;EAChB,sBAAM4kB,SAAS,GAAGF,KAAK,CAACA,KAAK,CAAC1kB,MAAN,GAAe,CAAhB,CAAvB;EACA4kB,gBAAAA,SAAS,CAACzD,iBAAV,CAA4BuD,KAAK,CAAC,CAAD,CAAjC,EAAsC,KAAKrD,SAA3C;EACD;EACF;EACF;EACF,SAnBD,MAmBO,IAAI,KAAKwD,gBAAL,CAAsBriB,CAAtB,KAA4B,KAAKghB,WAArC,EAAkD;EACvD,cAAI,KAAKC,kBAAT,EAA6B;EAC3B,iBAAKA,kBAAL,GAA0B,KAA1B;EACD,WAFD,MAEO;EACL,iBAAKa,WAAL,CAAiB9hB,CAAjB;EACD;EACF;EACF,OA3BD;EA4BD,KA7B4B,GAtWR;;EAAA,SAmerBsiB,aAneqB,GAmeJC,QAAD,IAAc;EAC5B,UAAI,KAAKd,aAAL,KAAuB,IAA3B,EAAiC;EAC/B,aAAKA,aAAL,CAAmB5D,SAAnB,GAA+B0E,QAAQ,GAAG,CAAX,GAAe,IAAf,GAAsBA,QAArD;EACA,cAAMC,uBAAuB,GAAGD,QAAQ,GAAG,CAAX,IAAgBhiB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAAhD;EACA,aAAKG,aAAL,CAAmBrG,KAAnB,CAAyBZ,OAAzB,GAAmCgI,uBAAuB,GAAG,MAAH,GAAY,MAAtE;EACD;EACF,KAzeoB;;EAEnB,SAAKrlB,MAAL,GAAcA,MAAd;EACA,SAAKwc,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAmBD,MAAIyI,gBAAJ,GAAwB;EACtB,WAAO,EAAP;EACD;;EAED,MAAIA,gBAAJ,CAAsBC,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,QAAIA,IAAI,CAACllB,MAAL,GAAc,CAAlB,EAAqB;EACnB,WAAKmlB,mBAAL,CAAyBD,IAAzB;EACD;EACF;;EAED,MAAIE,0BAAJ,GAAkC;EAChC,WAAO,EAAP;EACD;;EAED,MAAIA,0BAAJ,CAAgCF,IAAhC,EAA2C;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzC,UAAMG,WAAW,GAAG,EAApB;;EACA,QAAIH,IAAI,CAACllB,MAAL,GAAc,CAAd,IAAmB,KAAKgH,KAA5B,EAAmC;EACjC,WAAKqa,SAAL,GAAiB,IAAjB;EACA,WAAKuC,eAAL,GAAuB,CAAvB;EACAsB,MAAAA,IAAI,CAAC5R,OAAL,CAAc7R,CAAD,IAAO;EAClB,cAAM7B,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,QAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP;EACAylB,QAAAA,WAAW,CAACzlB,GAAD,CAAX,GAAmB6B,CAAnB;EACA,aAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,aAAKmiB,eAAL;EACD,OAND;EAOA,WAAK2B,kBAAL,CAAwBF,WAAxB;EACA,WAAKG,0BAAL;EACD;EACF;;EAEDC,EAAAA,iBAAiB,GAAI;EACnB,SAAKC,IAAL;EACD;;EAEDA,EAAAA,IAAI,GAAI;EACN,SAAK5G,MAAL,GAAc,KAAKuC,SAAL,GAAiB,KAAKwC,qBAAtB,GAA8ChiB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlH;;EACA,QAAImB,MAAM,CAACgV,IAAP,CAAY,KAAKyL,MAAjB,EAAyB9e,MAAzB,KAAoC,CAAxC,EAA2C;EACzC;EACD;;EACD,SAAK8jB,aAAL,GAAqB/gB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAArB;;EACA,QAAI,KAAKA,aAAL,KAAuB,IAA3B,EAAiC;EAC/B;EACD;;EAED,QAAI,KAAKhF,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAvB,EAA2C;EACzC,WAAKC,gBAAL;EACD,KAFD,MAEO,IAAI,KAAK5B,aAAT,EAAwB;EAC7B,WAAKA,aAAL,CAAmBxhB,MAAnB;EACD;;EAED,SAAKqjB,WAAL;EAEA;EACJ;EACA;EACA;EACA;;EACI/iB,IAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,EAAsC,KAAK3B,0BAA3C;EACArhB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,EAAmC,KAAK8G,0BAAxC;EACA,SAAKtF,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,IAAiC,KAAKykB,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD,CAAjC;EAEA,SAAKlE,MAAL,CAAYe,SAAZ,GAAwB,KAAK+I,cAAL,EAAxB;EACA,SAAK9J,MAAL,CAAYzJ,WAAZ,CAAwB,KAAK1L,KAA7B;EACD;;EAEDkf,EAAAA,oBAAoB,GAAI;EACtB,UAAMC,QAAQ,GAAG,KAAKC,gCAAL,CAAsC,KAAtC,CAAjB;EACA,UAAMC,MAAM,GAAGF,QAAQ,GAAG9nB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,CAAH,GAA2B,EAAlD;;EACA,QAAIE,MAAM,CAACrmB,MAAP,KAAkB,CAAtB,EAAyB;EACvB;EACD;;EACDqmB,IAAAA,MAAM,CAAC/S,OAAP,CAAgB7R,CAAD,IAAO;EACpB,UAAI,CAAC0kB,QAAQ,CAAC1kB,CAAD,CAAR,CAAYke,MAAjB,EAAyB;EACvB,aAAKgE,gBAAL,CAAsBliB,CAAtB,IAA2B0kB,QAAQ,CAAC1kB,CAAD,CAAnC;EACA,aAAKmiB,eAAL;EACD;EACF,KALD;EAMA,SAAK2B,kBAAL,CAAwBY,QAAxB;EACA,SAAKX,0BAAL;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,gCAAgC,GAA2B;EAAA,QAAzBE,gBAAyB,uEAAN,IAAM;EACzD,QAAIH,QAAQ,GAAGI,gBAAgB,EAA/B;EAEA,UAAMjB,GAAG,GAAG1kB,IAAI,CAACC,KAAL,CAAWnC,IAAI,CAAC4mB,GAAL,KAAa,IAAxB,CAAZ;;EACA,SAAK,MAAMhG,GAAX,IAAkB6G,QAAlB,EAA4B;EAC1B,UAAIA,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,IAA0BL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyB,CAAnD,IAAwDL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyBlB,GAArF,EAA0F;EACxF,YAAIgB,gBAAgB,IAAI,KAAKtf,KAA7B,EAAoC;EAClC,gBAAMyf,EAAE,GAAG,KAAKrJ,UAAL,CAAgBpF,cAAhB,CAA+BmO,QAAQ,CAAC7G,GAAD,CAAR,CAAchmB,EAA7C,CAAX;EACAmtB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;;EACA,cAAI,CAAC0jB,QAAQ,CAAC7G,GAAD,CAAR,CAAcK,MAAnB,EAA2B;EACzB,iBAAKiE,eAAL;EACA,iBAAK4B,0BAAL;EACD;EACF;;EACD,eAAOW,QAAQ,CAAC7G,GAAD,CAAf;EACD;EACF;;EACD,QAAI6G,QAAQ,IAAIA,QAAQ,CAACnmB,MAAT,GAAkB,CAAlC,EAAqC;EACnCmmB,MAAAA,QAAQ,GAAG9nB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDslB,MAAxD,CAA+D,CAACC,GAAD,EAAMnlB,CAAN,KAAY;EAAEmlB,QAAAA,GAAG,CAACnlB,CAAC,CAACnI,EAAH,CAAH,GAAYmI,CAAZ;EAAe,eAAOmlB,GAAP;EAAY,OAAxG,EAA0G,EAA1G,CAAX;EACD;;EACDC,IAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA,WAAOA,QAAP;EACD;;EAEDhB,EAAAA,mBAAmB,GAAa;EAAA,QAAXD,IAAW,uEAAJ,EAAI;EAC9B,UAAM4B,SAAS,GAAG,KAAKV,gCAAL,EAAlB;EACA,UAAM/kB,IAAI,GAAG3C,IAAI,CAAC4mB,GAAL,EAAb;EACA,UAAMyB,YAAY,GAAG,EAArB;EACA7B,IAAAA,IAAI,CAAC5R,OAAL,CAAa,CAAC7R,CAAD,EAAIoN,CAAJ,KAAU;EACrB,YAAMjP,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,MAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP,CAFqB;;EAIrB6B,MAAAA,CAAC,CAACJ,IAAF,GAASA,IAAI,GAAGwN,CAAhB;EACApN,MAAAA,CAAC,CAACke,MAAF,GAAW,CAAX;EACAmH,MAAAA,SAAS,CAAClnB,GAAD,CAAT,GAAiB6B,CAAjB;EACAslB,MAAAA,YAAY,CAACnnB,GAAD,CAAZ,GAAoB6B,CAApB;EACA,WAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,WAAKmiB,eAAL;EACD,KAVD;EAWAiD,IAAAA,iBAAiB,CAACC,SAAD,CAAjB;;EACA,QAAI,KAAK9f,KAAT,EAAgB;EACd,WAAKue,kBAAL,CAAwBwB,YAAxB;EACA,WAAKvB,0BAAL;EACD;EACF;;EAEDrG,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDwG,EAAAA,gBAAgB,GAAI;EAClB,QAAI,CAAC,KAAK5B,aAAV,EAAyB;EACvB,WAAKA,aAAL,GAAqB,KAAK9E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB,CADuB;;EAGvB,WAAK8E,aAAL,CAAmBrG,KAAnB,CAAyBkD,OAAzB,iHAA0I,KAAKhC,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCzD,eAAhL,uCAA4N,KAAKrD,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCoB,SAAlQ;EACAjkB,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B,KAAKuR,aAA/B;EACD;;EACD,SAAKiD,2BAAL,GAPkB;;EAUlBjjB,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC,MAAM;EACtC,WAAK4J,2BAAL;EACD,KAFD;EAGD;;EAEDA,EAAAA,2BAA2B,GAAI;EAC7B,QAAI;EACF,YAAMC,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,KAAsD,KAAKA,aAA7E;EACA,YAAM;EAAEsD,QAAAA,GAAF;EAAOC,QAAAA;EAAP,UAAiBF,SAAS,CAACG,qBAAV,EAAvB;EACA,WAAKrD,aAAL,CAAmBrG,KAAnB,CAAyBwJ,GAAzB,aAAkCA,GAAG,GAAG,CAAxC;EACA,WAAKnD,aAAL,CAAmBrG,KAAnB,CAAyB2J,IAAzB,aAAmCF,KAAK,GAAG,CAA3C;EACD,KALD,CAKE,OAAOzc,KAAP,EAAc;EACd,WAAKjL,MAAL,CAAYkG,KAAZ,CAAkB,yCAAlB,EAA6D+E,KAA7D;EACD;EACF;;EAEDkb,EAAAA,WAAW,GAAI;EACb,SAAK9e,KAAL,GAAa,KAAKmY,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAb;EACA,UAAMqI,MAAM,GAAG,KAAKrI,QAAL,CAAc,KAAd,EAAqB,QAArB,CAAf;EAEA,UAAMsI,WAAW,GAAG,KAAKtI,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAsI,IAAAA,WAAW,CAACpH,SAAZ,GAAwB,KAAKvB,MAAL,CAAYsB,KAApC;EAEA,UAAM/C,SAAS,GAAG,KAAK8B,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAlB;EACA9B,IAAAA,SAAS,CAACH,SAAV,GAAsB,QAAtB;EAEAsK,IAAAA,MAAM,CAAC9U,WAAP,CAAmB+U,WAAnB;EACAD,IAAAA,MAAM,CAAC9U,WAAP,CAAmB2K,SAAnB;EACA,SAAKrW,KAAL,CAAW0L,WAAX,CAAuB8U,MAAvB;;EACA,QAAI,KAAK1I,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,YAAMgmB,UAAU,GAAG,KAAK0B,gBAAL,EAAnB;EACA,WAAK1gB,KAAL,CAAW0L,WAAX,CAAuBsT,UAAvB;EACD;;EACD,SAAKhC,SAAL,GAAiB,KAAK7E,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAjB;EACA,SAAKnY,KAAL,CAAW0L,WAAX,CAAuB,KAAKsR,SAA5B;EAEA,SAAKD,aAAL,GAAqB,KAAK5E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB;EACA,SAAK4E,aAAL,CAAmB1D,SAAnB,GAA+B,sCAA/B;EACA,SAAK2D,SAAL,CAAetR,WAAf,CAA2B,KAAKqR,aAAhC,EAtBa;;EAyBb,UAAM4D,OAAO,GAAG;EACdC,MAAAA,IAAI,EAAE,KAAK5D,SADG;EAEd6D,MAAAA,UAAU,EAAE,KAFE;EAGdC,MAAAA,SAAS,EAAE;EAHG,KAAhB;EAKA,SAAK5D,QAAL,GAAgB,IAAI6D,oBAAJ,CAAyB,CAACC,OAAD,EAAU9D,QAAV,KAAuB;EAAE,WAAK+D,mBAAL,CAAyBD,OAAzB;EAAmC,KAArF,EAAuFL,OAAvF,CAAhB;EAEA,SAAKzB,oBAAL;EACD;;EAEDwB,EAAAA,gBAAgB,GAAI;EAClB,UAAMQ,mBAAmB,GAAG,KAAK/I,QAAL,CAAc,KAAd,EAAqB,qBAArB,CAA5B;EAEA,UAAMgJ,SAAS,GAAG,KAAKhJ,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAgJ,IAAAA,SAAS,CAACjL,SAAV,GAAsBkL,QAAtB;EACAD,IAAAA,SAAS,CAACE,QAAV,CAAmB,CAAnB,EAAsBzK,KAAtB,GAA8B,2BAA9B;EACAuK,IAAAA,SAAS,CAAC7K,gBAAV,CAA2B,OAA3B,EAAoC,MAAM;EACxC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,CAAC,EAA9D,EAAkE,CAAlE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCyV,SAAhC;EAEA,UAAMI,iBAAiB,GAAG,KAAKpJ,QAAL,CAAc,KAAd,EAAqB,mBAArB,CAA1B;EACA,UAAMqJ,WAAW,GAAG,CAAC,KAAD,EAAQ,GAAG,KAAK1J,MAAL,CAAYkH,UAAvB,CAApB;;EACAwC,IAAAA,WAAW,CAAClV,OAAZ,CAAoB,CAACzP,CAAD,EAAIgL,CAAJ,KAAU;EAC5B,YAAM4Z,QAAQ,GAAG,KAAKtJ,QAAL,CAAc,KAAd,qBAAiCtQ,CAAjC,GAAsC,UAAtC,CAAjB;EACA4Z,MAAAA,QAAQ,CAACpI,SAAT,GAAqBxc,CAArB;;EACA,UAAIgL,CAAC,KAAK,CAAV,EAAa;EACX,aAAKsV,mBAAL,GAA2BsE,QAA3B;EACD;;EACDF,MAAAA,iBAAiB,CAAC7V,WAAlB,CAA8B+V,QAA9B;EACD,KAPD;;EAQAP,IAAAA,mBAAmB,CAACxV,WAApB,CAAgC6V,iBAAhC;EAEA,UAAMG,UAAU,GAAG,KAAKvJ,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAnB;EACAuJ,IAAAA,UAAU,CAACxL,SAAX,GAAuBkL,QAAvB;EACAM,IAAAA,UAAU,CAACpL,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,EAA7D,EAAiE,CAAjE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCgW,UAAhC;EAEA,UAAMf,OAAO,GAAG;EAAEC,MAAAA,IAAI,EAAEM,mBAAR;EAA6BJ,MAAAA,SAAS,EAAE;EAAxC,KAAhB;EACA,UAAMa,aAAa,GAAGJ,iBAAiB,CAACF,QAAlB,CAA2B,CAA3B,CAAtB;EACA,UAAMO,YAAY,GAAGL,iBAAiB,CAACF,QAAlB,CAA2B,KAAKvJ,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAlD,CAArB;EAEA,UAAM6oB,qBAAqB,GAAG,IAAId,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC5D,WAAKsmB,kBAAL,CAAwBX,SAAxB,EAAmC3lB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA7D;EACD,KAF6B,EAE3BpB,OAF2B,CAA9B;EAGAkB,IAAAA,qBAAqB,CAACnL,OAAtB,CAA8BiL,aAA9B;EAEA,UAAMK,oBAAoB,GAAG,IAAIjB,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC3D,WAAKsmB,kBAAL,CAAwBJ,UAAxB,EAAoClmB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA9D;EACD,KAF4B,EAE1BpB,OAF0B,CAA7B;EAGAqB,IAAAA,oBAAoB,CAACtL,OAArB,CAA6BkL,YAA7B;EAEA,WAAOV,mBAAP;EACD;;EAEDY,EAAAA,kBAAkB,CAAErC,EAAF,EAAMwC,IAAN,EAAY;EAC5B,QAAI,CAACxC,EAAL,EAAS;EACP;EACD;;EACDA,IAAAA,EAAE,CAAC7I,KAAH,CAASZ,OAAT,GAAmBiM,IAAI,GAAG,MAAH,GAAY,MAAnC;EACD;;EAEDxE,EAAAA,oBAAoB,CAAEyE,cAAF,EAAkB;EACpC,SAAKxF,gBAAL,GAAwBwF,cAAxB;EAEA,SAAKlF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,QAAIC,OAAO,GAAG,CAAd;EAEA,SAAK5E,eAAL,IAAwB,KAAKA,eAAL,CAAqBjS,YAArB,CAAkC,UAAlC,EAA8C,OAA9C,CAAxB;EACA,SAAK4R,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,MAAlD;EAEA,SAAKyR,SAAL,CAAeqF,UAAf,CAA0B/V,OAA1B,CAAkCzP,CAAC,IAAI;EACrC,UAAIA,CAAC,CAACsV,YAAF,CAAe,IAAf,MAAyB,eAA7B,EAA8C;EAC5CtV,QAAAA,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,GAAmB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmC7f,CAAC,CAACsV,YAAF,CAAe,UAAf,MAA+B,KAAKuK,gBAAxE,GAA4F,OAA5F,GAAsG,MAAxH;;EACA,YAAI7f,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,KAAoB,OAAxB,EAAiC;EAC/BoM,UAAAA,OAAO;EACR;EACF;EACF,KAPD;;EAQA,QAAIA,OAAO,KAAK,CAAhB,EAAmB;EACjB,WAAKrF,aAAL,CAAmB1D,SAAnB,aAAkC6I,cAAlC;EACA,WAAKnF,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,OAAnC;EACD,KAHD,MAGO;EACL,WAAK+G,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,MAAnC;EACD;EACF;;EAEDuI,EAAAA,kBAAkB,GAAiB;EAAA;;EAAA,QAAfY,QAAe,uEAAJ,EAAI;EACjC,KAAC,KAAK9E,SAAN,IAAmB,KAAKiI,uBAAL,EAAnB;EACA,SAAKtF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,UAAMI,cAAc,4BAAG,KAAKzK,MAAL,CAAYyK,cAAf,yEAAiCnsB,aAArD;EACA,UAAMosB,UAAU,GAAG,KAAKxF,SAAL,CAAewF,UAAlC;EAEA,UAAMC,UAAU,GAAGprB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDqoB,GAAxD,CAA6DjoB,CAAD,IAAOA,CAAC,CAACnI,EAArE,CAAnB;;EACA,SAAK,MAAMmI,CAAX,IAAgBgoB,UAAhB,EAA4B;EAC1B,YAAMxhB,IAAI,GAAG,IAAI4W,OAAJ,CAAY,KAAKC,MAAjB,EAAyBqH,QAAQ,CAAC1kB,CAAD,CAAjC,CAAb;EACAwG,MAAAA,IAAI,CAACsK,YAAL,CAAkB,IAAlB,EAAwB4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYnI,EAApC;EACA2O,MAAAA,IAAI,CAACsK,YAAL,CAAkB,OAAlB,EAA2B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYqb,UAAvC;EACA7U,MAAAA,IAAI,CAACsK,YAAL,CAAkB,MAAlB,EAA0B,kBAA1B;;EACA,UAAI,KAAKuM,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,CAApC,EAAuC;EACrCiI,QAAAA,IAAI,CAACsK,YAAL,CAAkB,UAAlB,EAA8B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYkoB,IAAZ,CAAiB,CAAjB,KAAuB,EAArD;EACA1hB,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAsB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmCyC,QAAQ,CAAC1kB,CAAD,CAAR,CAAYgnB,QAAZ,KAAyB,KAAK/E,gBAAlE,GAAsF,OAAtF,GAAgG,MAArH;EACD,OAHD,MAGO;EACLzb,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAqB,OAArB;EACD;;EACD,WAAKgH,SAAL,CAAe4F,YAAf,CAA4B3hB,IAA5B,EAAkCuhB,UAAlC;EACA,WAAKtF,QAAL,CAAcxG,OAAd,CAAsBzV,IAAtB;EACD;;EAED,QAAI4hB,aAAa,GAAG,KAAK7F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoD9pB,MAAxE;;EACA,WAAO6pB,aAAa,GAAGN,cAAvB,EAAuC;EACrC,YAAMQ,WAAW,GAAG,KAAK/F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,CAApB;;EACA,UAAIC,WAAW,CAAC/pB,MAAZ,GAAqB,CAAzB,EAA4B;EAAE+pB,QAAAA,WAAW,CAACA,WAAW,CAAC/pB,MAAZ,GAAqB,CAAtB,CAAX,CAAoCyC,MAApC;EAA8C;;EAC5EonB,MAAAA,aAAa;EACd;;EACD,UAAMG,WAAW,GAAG,KAAKhG,SAAL,CAAe8F,gBAAf,CAAgC,2CAAhC,EAA6E9pB,MAAjG;EACA,SAAK+jB,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmCgN,WAAW,GAAG,MAAH,GAAY,OAA1D;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAiCE;EACF;EACA;EACA;EACA;EACA;EACEnF,EAAAA,gBAAgB,CAAEriB,CAAF,EAAK;EAAA;;EACnB,UAAMsc,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,UAAM+sB,YAAY,GAAGlnB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,CAArB;EAEA,WACE,6BAAKA,aAAL,4EAAoBoG,QAApB,CAA6B1nB,CAAC,CAACia,MAA/B,OAA0CwN,YAA1C,aAA0CA,YAA1C,uBAA0CA,YAAY,CAAEC,QAAd,CAAuB1nB,CAAC,CAACia,MAAzB,CAA1C,CADF;EAGD;EAED;EACF;EACA;EACA;;;EACEwL,EAAAA,mBAAmB,CAAED,OAAF,EAAW;EAC5B,UAAMmC,gBAAgB,GAAG,CAAC,KAAK9I,SAA/B;;EACA,QAAI,KAAKmC,WAAT,EAAsB;EACpBwE,MAAAA,OAAO,CAAC1U,OAAR,CAAiB9Q,CAAD,IAAO;EACrB,YAAIA,CAAC,CAAC4nB,cAAF,IAAoB,KAAKzG,gBAAL,CAAsB7kB,cAAtB,CAAqC0D,CAAC,CAACia,MAAF,CAASnjB,EAA9C,CAApB,IAAyEkJ,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,KAA4B,CAAzG,EAA4G;EAC1Gnd,UAAAA,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,GAA0B,CAA1B;;EACA,cAAIwK,gBAAJ,EAAsB;EACpBlmB,YAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAA1C;EACA,iBAAKwN,iBAAL,CAAuB7nB,CAAC,CAACia,MAAF,CAASnjB,EAAhC,EAAoC,EAAE,GAAGkJ,CAAC,CAACia,MAAF,CAASsC,OAAd;EAAuBY,cAAAA,MAAM,EAAE;EAA/B,aAApC;EACA5N,YAAAA,UAAU,CAAC,MAAM;EACfvP,cAAAA,CAAC,CAACia,MAAF,CAASW,UAAT,CAAoBpF,cAApB,CAAmC,cAAnC,EAAmD4F,KAAnD,CAAyDZ,OAAzD,GAAmE,MAAnE;EACD,aAFS,EAEP,IAFO,CAAV;EAGD,WAND,MAMO;EACLjJ,YAAAA,OAAO,CAACkO,GAAR,CAAY,qEAAZ,EAAmF;EAAEtF,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAAnF;EACD;;EACD,eAAK+G,eAAL;EACA,eAAK4B,0BAAL;EACA,iBAAO,KAAK7B,gBAAL,CAAsBnhB,CAAC,CAACia,MAAF,CAASnjB,EAA/B,CAAP;EACD;EACF,OAhBD;EAiBD;EACF;;EAED+wB,EAAAA,iBAAiB,CAAEzqB,GAAF,EAAOL,KAAP,EAAc;EAC7B,QAAI,CAAC,KAAK8hB,SAAV,EAAqB;EACnB,YAAM8E,QAAQ,GAAGI,gBAAgB,EAAjC;EACAJ,MAAAA,QAAQ,CAACvmB,GAAD,CAAR,GAAgBL,KAAhB;EACAsnB,MAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD;EACF,GAtboC;;;EAybrC7B,EAAAA,WAAW,CAAE9hB,CAAF,EAAK;EACd,SAAKghB,WAAL,GAAmB,CAAC,KAAKA,WAAzB;EACA,SAAKC,kBAAL,GAA0B,CAAC,EAACjhB,CAAD,aAACA,CAAD,uBAACA,CAAC,CAAE8nB,IAAJ,CAA3B;;EACA,QAAI,KAAK9G,WAAT,EAAsB;EACpB,WAAKQ,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,OAAC,KAAK9H,SAAN,IAAmB,KAAK+E,gCAAL,EAAnB;EACA,WAAKpf,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,OAA3B;EACA,WAAKhW,KAAL,CAAW4W,KAAX,CAAiB2M,MAAjB,GAA0B,YAA1B,CAJoB;;EAKpB,UAAI,KAAKzL,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,aAAKmkB,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,OAAlD;EACA,aAAK4R,mBAAL,GAA2B,KAAK/G,UAAL,CAAgBpF,cAAhB,CAA+B,YAA/B,CAA3B;EACA,aAAKyM,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD;EACA,aAAKjD,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDwS,UAApD,IAAkE,KAAKpN,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDyS,WAAtH;EACD;;EACD,WAAKC,gBAAL,CAAsBloB,CAAtB;EACD,KAZD,MAYO;EACL,WAAKwE,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,MAA3B;EACD;EACF;;EAED0N,EAAAA,gBAAgB,CAAEloB,CAAF,EAAK;EACnB,UAAMmoB,WAAW,GAAG1mB,MAAM,CAAC2mB,UAA3B;EACA,UAAMC,iBAAiB,GAAGC,gBAAgB,CAACxmB,GAAG,CAAC0C,KAAL,CAA1C;EACA,UAAMogB,GAAG,GAAGyD,iBAAiB,CAACE,gBAAlB,CAAmC,aAAnC,CAAZ;EACA,UAAMC,MAAM,GAAGH,iBAAiB,CAACE,gBAAlB,CAAmC,gBAAnC,CAAf;EACA,UAAMxD,IAAI,GAAGsD,iBAAiB,CAACE,gBAAlB,CAAmC,cAAnC,CAAb;EACA,UAAM1D,KAAK,GAAGwD,iBAAiB,CAACE,gBAAlB,CAAmC,eAAnC,CAAd;EACA,UAAME,kBAAkB,GAAG7D,GAAG,IAAI4D,MAAP,IAAiBzD,IAAjB,IAAyBF,KAApD;;EACA,QAAIsD,WAAW,GAAG,GAAd,IAAqB,CAACM,kBAA1B,EAA8C;EAC5C,YAAMC,GAAG,GAAGC,gBAAgB,CAAC3oB,CAAD,EAAI,KAAKwE,KAAL,CAAWokB,YAAf,EAA6B,KAAKpkB,KAAL,CAAWqkB,WAAxC,CAA5B;EACA,YAAMC,IAAI,GAAGJ,GAAG,CAACI,IAAjB;EACA,YAAMC,IAAI,GAAGL,GAAG,CAACK,IAAjB;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiBwJ,GAAjB,GAAuBmE,IAAI,GAAG,IAA9B;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiB2J,IAAjB,GAAwB+D,IAAI,GAAG,IAA/B;EACD;EACF;EAED;EACF;EACA;EACA;EACA;;;EAUE9F,EAAAA,0BAA0B,GAAI;EAC5B,QAAI,KAAKnE,SAAT,EAAoB;EAClB,WAAKyD,aAAL,CAAmB,KAAKlB,eAAxB;EACA;EACD;;EACD,QAAIwF,OAAO,GAAG,CAAd;EACA,SAAKpF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM0kB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAIJ,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,IAAkB6sB,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,CAAeqmB,MAAf,KAA0B,CAAhD,EAAmD;EACjDyJ,QAAAA,OAAO;EACR;EACF,KALD;EAMA,SAAKtE,aAAL,CAAmBsE,OAAnB;EACD;;EAEDE,EAAAA,uBAAuB,GAAI;EACzB,SAAKtF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM+pB,EAAE,GAAG/pB,CAAC,CAACnI,EAAF,CAAKqK,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAX;EACAlC,MAAAA,CAAC,CAAC0a,MAAF,CAASnE,cAAT,CAAwB,WAAxB,EAAqCwR,UAArC,CAAgDnJ,SAAhD,GAA4DX,sBAAsB,CAAC8L,EAAD,CAAlF;EACD,KAHD;EAID;;EAEDvF,EAAAA,cAAc,GAAI;EAChB,UAAMwF,YAAY,GAAG,EAArB;EACA,UAAMC,gBAAgB,GAAG,KAAK5M,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,EAAhC,GAAqC,EAA9D;EAEA,UAAM2lB,MAAM,GAAG;EACbhD,MAAAA,oBAAoB,EAAE,KAAK7D,MAAL,CAAY6G,MAAZ,CAAmBhD,oBAD5B;EAEbC,MAAAA,gBAAgB,EAAE,KAAK9D,MAAL,CAAY6G,MAAZ,CAAmB/C,gBAFxB;EAGbC,MAAAA,qBAAqB,EAAE,KAAK/D,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BrF,eAHpC;EAIbW,MAAAA,gBAAgB,EAAE,KAAKhE,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BnF,UAJ/B;EAKbU,MAAAA,cAAc,EAAE,KAAKjE,MAAL,CAAY6G,MAAZ,CAAmB5C,cALtB;EAMbC,MAAAA,kBAAkB,EAAE,KAAKlE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B2F,QANrC;EAOb1I,MAAAA,oBAAoB,EAAE,KAAKnE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B3D,UAPvC;EAQbc,MAAAA,wBAAwB,EAAE,KAAKrE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CD,QARvD;EASbvI,MAAAA,0BAA0B,EAAE,KAAKtE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CvJ,UATzD;EAUbiB,MAAAA,oBAAoB,EAAEmI,YAAY,GAAGC;EAVxB,KAAf;;EAYA,QAAI,KAAK5M,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAAlC,EAA+C;EAC7CuD,MAAAA,MAAM,CAACzC,qBAAP,GAA+B,KAAKpE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAA7D;EACD;;EACD,QAAI,KAAKtD,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA9C,EAA2D;EACzDuD,MAAAA,MAAM,CAACtC,2BAAP,GAAqC,KAAKvE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA/E;EACD;;EAED,UAAMyJ,WAAW,GAAGnJ,oBAAoB,CAACiD,MAAD,CAAxC;EAEA,UAAMmG,UAAU,GAAG,KAAKhN,MAAL,CAAY6G,MAAZ,CAAmBoG,KAAtC;EACA,UAAMC,SAAS,GAAG9J,aAAa,CAAC;EAC9BC,MAAAA,eAAe,EAAE2J,UAAU,CAAC3J,eADE;EAE9BC,MAAAA,WAAW,EAAE0J,UAAU,CAAC1J,WAFM;EAG9BC,MAAAA,UAAU,EAAEyJ,UAAU,CAACzJ,UAHO;EAI9BC,MAAAA,gBAAgB,EAAEwJ,UAAU,CAACxJ,gBAJC;EAK9BC,MAAAA,WAAW,EAAEuJ,UAAU,CAACvJ,WALM;EAM9BC,MAAAA,eAAe,EAAEsJ,UAAU,CAACtJ,eANE;EAO9BC,MAAAA,iBAAiB,EAAEqJ,UAAU,CAACrJ;EAPA,KAAD,CAA/B;EAUA,WAAOoJ,WAAW,GAAGG,SAArB;EACD;;EAviBoC;;ECAhC,MAAMC,uBAAuB,GAAG,UAACC,eAAD,EAAwC;EAAA,MAAtB7K,SAAsB,uEAAV,KAAU;;EAC7E,QAAM8K,SAAS,GAAGtqB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAxE;;EACA,MAAImkB,SAAJ,EAAe;EACb/c,IAAAA,GAAG,CAAC0C,KAAJ,CAAU6c,qBAAV,GAAkCqI,eAAlC;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUqa,SAAV,GAAsB,IAAtB;EACA/c,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD,GAJD,MAIO,IAAIxjB,IAAI,CAACC,SAAL,CAAegqB,SAAf,MAA8BjqB,IAAI,CAACC,SAAL,CAAe+pB,eAAf,CAAlC,EAAmE;EACxErqB,IAAAA,cAAc,CAACqC,gBAAf,CAAgChH,eAAhC,EAAiDgvB,eAAjD;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD;EACF,CAVM;EAYA,MAAM0G,kBAAkB,GAAI9M,GAAD,IAAS;EACzC,MAAIA,GAAG,CAAC+M,aAAR,EAAuB;EACrB/nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUoe,0BAAV,GAAuC9F,GAAG,CAACgN,YAA3C;EACD,GAFD,MAEO;EACLhoB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUie,gBAAV,GAA6B3F,GAA7B;EACD;EACF,CANM;EAiBA,MAAMiN,WAAW,GAAI5sB,MAAD,IAAY;EACrC6sB,EAAAA,gCAAgC;EAChCloB,EAAAA,GAAG,CAAC0C,KAAJ,GAAY,IAAIuc,KAAJ,CAAU;EAAE5jB,IAAAA;EAAF,GAAV,CAAZ;EACAoD,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BpO,GAAG,CAAC0C,KAA9B;EACD,CAJM;;EAMP,MAAMylB,0BAA0B,GAAI9hB,IAAD,IAAU;EAC3C,QAAMwb,QAAQ,GAAGtkB,cAAc,CAAC2C,kBAAf,CAAkCrH,QAAlC,KAA+C,EAAhE,CAD2C;;EAG3C,MAAIkB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAA/B,IAAoC3B,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsB,CAAtB,EAAyBnZ,QAAzB,CAAkC,GAAlC,CAAxC,EAAgF;EAC9E,UAAM0f,WAAW,GAAG,EAApB;EACAA,IAAAA,WAAW,CAAC/hB,IAAD,CAAX,GAAoBwb,QAApB;EACAtkB,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0CuvB,WAA1C;EACA,WAAOA,WAAP;EACD;;EACD,SAAOvG,QAAP;EACD,CAVD;;EAYO,MAAMI,gBAAgB,GAAG,MAAM;EACpC,QAAM5b,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE,WAAO,EAAP;EAAW;;EACtC,QAAMwb,QAAQ,GAAGsG,0BAA0B,CAAC9hB,IAAD,CAA3C;EAEA,SAAOwb,QAAQ,CAACrnB,cAAT,CAAwB6L,IAAxB,IAAgCwb,QAAQ,CAACxb,IAAD,CAAxC,GAAiD,EAAxD;EACD,CANM;EAQA,MAAMkc,iBAAiB,GAAIV,QAAD,IAAc;EAC7C,QAAMxb,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE;EAAQ;;EACnC,QAAMgiB,cAAc,GAAGF,0BAA0B,CAAC9hB,IAAD,CAAjD;EAEA,QAAMsI,MAAM,GAAG,EAAE,GAAG0Z,cAAL;EAAqB,KAAChiB,IAAD,GAAQwb;EAA7B,GAAf;EACAtkB,EAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0C8V,MAA1C;EACD,CAPM;EASA,MAAM2Z,kBAAkB,GAAIjtB,MAAD,IAAY;EAC5C,SAAO,IAAIktB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,UAAMC,UAAU,GAAG,UAACC,SAAD,EAAgD;EAAA,UAApCC,QAAoC,uEAAzB,GAAyB;EAAA,UAApBC,UAAoB,uEAAP,EAAO;EACjE,aAAO,IAAIN,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,YAAIK,QAAQ,GAAG,CAAf;EACA,cAAMC,KAAK,GAAGC,WAAW,CAAC,MAAM;EAC9B3tB,UAAAA,MAAM,CAACkG,KAAP,0BAA+BunB,QAAQ,GAAG,CAA1C;;EACA,cAAIH,SAAS,EAAb,EAAiB;EACfM,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFQ;EAGhB,WAHD,MAGO,IAAIxoB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EAC7BumB,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFsB;EAG9B,WAHM,MAGA,IAAIM,QAAQ,IAAID,UAAhB,EAA4B;EACjCI,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAN,YAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,sCAAV,CAAD,CAAN;EACD;;EACDJ,UAAAA,QAAQ;EACT,SAbwB,EAatBF,QAbsB,CAAzB;EAcD,OAhBM,CAAP;EAiBD,KAlBD;;EAoBA,UAAMO,cAAc,GAAG,MAAM;EAC3B,UAAInpB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBulB,QAAAA,WAAW,CAAC5sB,MAAD,CAAX;EACD;EACF,KAJD;;EAMA,UAAM+tB,qBAAqB,GAAG,MAAM;EAClC,YAAM5O,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;;EACA,UAAI,CAAC4hB,MAAM,CAACgF,aAAZ,EAA2B;EACzBnkB,QAAAA,MAAM,CAACkG,KAAP,CAAa,kCAAb;EACA,eAAO,KAAP;EACD;;EACD,aAAO9C,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,KAAiDxf,GAAG,CAAC0C,KAAJ,KAAc,IAAtE;EACD,KAPD;;EASA,UAAM2mB,SAAS,GAAG,MAAM;EACtBhuB,MAAAA,MAAM,CAACkG,KAAP,CAAa,qBAAb;EACD,KAFD;;EAIA,QAAI+nB,YAAY,GAAG,KAAnB,CAxCsC;;EAyCtC,UAAMC,UAAU,GAAG,MAAM;EACvB,UAAI,CAACD,YAAL,EAAmB;EACjBA,QAAAA,YAAY,GAAG,IAAf;EACAZ,QAAAA,UAAU,CAACU,qBAAD,EAAwB,GAAxB,EAA6B,EAA7B,CAAV,CACGI,IADH,CACQ,MAAM;EACVL,UAAAA,cAAc;EACdX,UAAAA,OAAO;EACR,SAJH,EAKGiB,KALH,CAKSJ,SALT;EAMD;EACF,KAVD;;EAYA,UAAMK,mBAAmB,GAAG,MAAM;EAChC,UAAIjrB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,QAAAA,UAAU;EACX,OAFD,MAEO;EACL5pB,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgCuQ,UAAhC;EACA9qB,QAAAA,QAAQ,CAACua,gBAAT,CACE,kBADF,EAEE,MAAM;EACJ,cAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,YAAAA,UAAU;EACX;EACF,SANH;EAQD;EACF,KAdD;;EAgBAG,IAAAA,mBAAmB;EACpB,GAtEM,CAAP;EAuED,CAxEM;EA0EA,MAAMxB,gCAAgC,GAAG,MAAM;EACpD,MAAI0B,cAAc,CAAClmB,GAAf,CAAmB,cAAnB,MAAuCxI,SAA3C,EAAsD;EACpD0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,cAAtB,EAAsC5K,KAAtC;EACA2K,IAAAA,cAAc,CAACC,MAAf,CAAsB,kBAAtB,EAA0CtP,OAA1C;EACD;EACF,CALM;EAOA,MAAMsM,gBAAgB,GAAG,CAAC3oB,CAAD,EAAI4rB,WAAJ,EAAiBC,UAAjB,KAAgC;EAC9D,QAAMC,gBAAgB,GAAGvrB,QAAQ,CAACwrB,gBAAT,CAA0B/D,UAAnD;EACA,QAAMgE,cAAc,GAAGzrB,QAAQ,CAACwrB,gBAAT,CAA0BpF,SAAjD;EACA,QAAMwB,WAAW,GAAG1mB,MAAM,CAACwqB,UAAP,GAAoBH,gBAAxC;EACA,QAAMI,YAAY,GAAGzqB,MAAM,CAAC0qB,WAAP,GAAqBH,cAA1C;EACA,QAAMI,YAAY,GAAGpsB,CAAC,CAAC8nB,IAAF,IAAU9nB,CAAC,CAACia,MAAF,CAAS6K,qBAAT,EAA/B;EACA,QAAMuH,SAAS,GAAGD,YAAY,CAACE,CAAb,GAAiBR,gBAAnC;EACA,QAAMS,SAAS,GAAGH,YAAY,CAACltB,CAAb,GAAiB8sB,cAAnC;EACA,QAAMQ,YAAY,GAAGJ,YAAY,CAACrH,IAAb,GAAoB+G,gBAAzC;EACA,QAAMW,aAAa,GAAGL,YAAY,CAACvH,KAAb,GAAqBiH,gBAA3C;EACA,QAAMY,WAAW,GAAGN,YAAY,CAACxH,GAAb,GAAmBoH,cAAvC,CAV8D;;EAY9D,QAAMW,cAAc,GAAGP,YAAY,CAAC5D,MAApC;EACA,QAAMoE,cAAc,GAAGR,YAAY,CAAChQ,MAApC;EACA,QAAMyQ,aAAa,GAAGT,YAAY,CAAC3Q,KAAnC;EACA,QAAMqR,cAAc,GAAG;EACrBR,IAAAA,CAAC,EAAED,SAAS,GAAIQ,aAAa,GAAG,CADX;EAErB3tB,IAAAA,CAAC,EAAEqtB,SAAS,GAAIK,cAAc,GAAG;EAFZ,GAAvB;EAIA,QAAMG,iBAAiB,GAAInB,WAAW,GAAG,CAAzC;EACA,QAAMoB,gBAAgB,GAAInB,UAAU,GAAG,CAAvC;EACA,MAAIoB,WAAW,GAAG,KAAlB;EAEA,MAAInE,IAAJ,EAAUC,IAAV;EAEA,QAAMhd,OAAO,GAAG,EAAhB;EAEA;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACE,MAAI4gB,cAAc,GAAGf,WAAjB,IAAgCM,YAApC,EAAkD;EAAE;EAClD,UAAMgB,eAAe,GAAGhB,YAAY,IAAIS,cAAc,GAAGf,WAArB,CAApC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B4gB,cAAc,GAAG5gB,OAA9C,GAAwD4gB,cAAc,GAAGO,eAAhF;EACD,GAHD,MAGO,IAAIR,WAAW,GAAGd,WAAd,IAA6BI,cAAjC,EAAiD;EAAE;EACxD,UAAMkB,eAAe,GAAGR,WAAW,GAAGd,WAAtC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B2gB,WAAW,GAAGd,WAAd,GAA4B7f,OAAzD,GAAmE2gB,WAAW,GAAGd,WAAd,GAA4BsB,eAAtG;EACD,GAHM,MAGA;EACLD,IAAAA,WAAW,GAAG,IAAd;EACAlE,IAAAA,IAAI,GAAG+D,cAAc,CAAC5tB,CAAf,GAAmB6tB,iBAA1B,CAFK;;EAGL,QAAIhE,IAAI,GAAGiD,cAAX,EAA2B;EACzBjD,MAAAA,IAAI,GAAGiD,cAAP;EACD,KAFD,MAEO,IAAIjD,IAAI,GAAG6C,WAAP,GAAqBM,YAAzB,EAAuC;EAC5CnD,MAAAA,IAAI,GAAGmD,YAAY,GAAGN,WAAtB;EACD;EACF;;EAED,MAAIqB,WAAJ,EAAiB;EACf;EACA,UAAME,UAAU,GAAGV,aAAa,GAAGZ,UAAnC;;EACA,QAAIsB,UAAU,IAAIhF,WAAlB,EAA+B;EAC7B,YAAMiF,cAAc,GAAGD,UAAU,GAAGphB,OAAb,IAAwBoc,WAAxB,GAAsCpc,OAAtC,GAAgDoc,WAAW,GAAGgF,UAArF;EACArE,MAAAA,IAAI,GAAG2D,aAAa,GAAGW,cAAvB;EACD,KAHD,MAGO;EACL,YAAMC,SAAS,GAAGb,YAAY,GAAGX,UAAjC;EACA,YAAMuB,cAAc,GAAGC,SAAS,GAAGthB,OAAZ,IAAuB+f,gBAAvB,GAA0C/f,OAA1C,GAAoDshB,SAAS,GAAGvB,gBAAvF;EACAhD,MAAAA,IAAI,GAAGuE,SAAS,GAAGD,cAAnB;EACD;EACF,GAXD,MAWO;EACLtE,IAAAA,IAAI,GAAGgE,cAAc,CAACR,CAAf,GAAmBU,gBAA1B;;EACA,QAAIlE,IAAI,GAAGgD,gBAAX,EAA6B;EAC3B,UAAIU,YAAY,GAAGX,UAAf,IAA6B1D,WAAjC,EAA8C;EAC5CW,QAAAA,IAAI,GAAG0D,YAAP;EACD,OAFD,MAEO;EACL1D,QAAAA,IAAI,GAAGgD,gBAAP;EACD;EACF,KAND,MAMO,IAAIhD,IAAI,GAAG+C,UAAP,GAAoB1D,WAAxB,EAAqC;EAC1C,UAAIsE,aAAa,GAAGZ,UAAhB,IAA8BC,gBAAlC,EAAoD;EAClDhD,QAAAA,IAAI,GAAG2D,aAAa,GAAGZ,UAAvB;EACD,OAFD,MAEO;EACL/C,QAAAA,IAAI,GAAGX,WAAW,GAAG0D,UAArB;EACD;EACF;EACF;;EAED,SAAO;EAAE/C,IAAAA,IAAF;EAAQC,IAAAA;EAAR,GAAP;EACD,CA3FM;EA6FA,MAAM7L,sBAAsB,GAAI8L,EAAD,IAAQ;EAC5C,QAAMlG,GAAG,GAAG5mB,IAAI,CAAC4mB,GAAL,EAAZ;EACA,MAAIwK,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAW,CAACykB,GAAG,GAAGkG,EAAP,IAAa,KAAxB,CAAX;;EACA,MAAIsE,IAAI,GAAG,CAAX,EAAc;EACZ,WAAO,UAAP;EACD;;EACD,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,oBAAwBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAzC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;;EACA,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,kBAAsBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAvC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;EACA,mBAAUA,IAAV,iBAAqBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAtC;EACD,CAfM;EAiBA,MAAMC,uBAAuB,GAAG,MAAM;EAC3C,SAAO1xB,MAAM,CAACgV,IAAP,CAAYxR,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlE,EAAsE8C,MAAtE,GAA+E,CAAtF;EACD,CAFM;EAIA,MAAMooB,QAAQ,4lBAAd;EAIA,MAAMnH,YAAY,4pBAAlB;;EC7QA,MAAM+O,YAAY,GAAG,qFAArB;EACA,MAAMC,QAAQ,GAAG,oFAAjB;EACA,MAAMC,SAAS,GAAG;EACvBC,EAAAA,YAAY,EAAE,uBADS;EAEvBC,EAAAA,YAAY,EAAE,uBAFS;EAGvBC,EAAAA,UAAU,EAAE;EAHW,CAAlB;;ECFA,MAAMC,cAAc,GAAG,UAACC,OAAD,EAAUC,SAAV,EAAqBjP,OAArB,EAAoD;EAAA,MAAtBF,SAAsB,uEAAV,KAAU;;EAChF,MAAImP,SAAS,KAAKhxB,SAAlB,EAA6B;EAC3B;EACA,QAAIgxB,SAAS,CAAC5S,KAAV,KAAoBpe,SAAxB,EAAmC;EACjCnB,MAAAA,MAAM,CAACgV,IAAP,CAAYmd,SAAS,CAAC5S,KAAtB,EAA6BtK,OAA7B,CAAsCnP,QAAD,IAAc;EACjDosB,QAAAA,OAAO,CAAC3S,KAAR,CAAcO,WAAd,CAA0Bha,QAA1B,EAAoCqsB,SAAS,CAAC5S,KAAV,CAAgBzZ,QAAhB,CAApC;EACD,OAFD;EAGD,KAN0B;;;EAS3B,QAAIqsB,SAAS,CAACC,SAAV,KAAwBjxB,SAA5B,EAAuC;EACrC,YAAMkxB,iBAAiB,GAAGH,OAAO,CAAC3S,KAAR,CAAc+S,cAAxC;;EACA,UAAIH,SAAS,CAACC,SAAd,EAAyB;EACvBF,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+B,UAAGD,iBAAH,gBAAiCjsB,IAAjC,EAA/B;EACD,OAFD,MAEO;EACL8rB,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+BD,iBAAiB,CAACrwB,OAAlB,CAA0B,WAA1B,EAAuC,EAAvC,EAA2CoE,IAA3C,EAA/B;EACD;EACF,KAhB0B;;;EAmB3B,QAAI+rB,SAAS,CAAC3P,IAAV,KAAmBrhB,SAAvB,EAAkC;EAChC+wB,MAAAA,OAAO,CAAClQ,SAAR,GAAoBgB,SAAS,GAAGmP,SAAS,CAAC3P,IAAV,CAAeA,IAAlB,GAAyB2P,SAAS,CAAC3P,IAAhE;EACD,KArB0B;;;EAwB3B,QAAI2P,SAAS,CAACI,YAAV,KAA2BpxB,SAA/B,EAA0C;EACxC,YAAM8N,GAAG,GAAGkjB,SAAS,CAACI,YAAV,CAAuBC,QAAnC;EACAN,MAAAA,OAAO,CAACO,OAAR,GAAkBN,SAAS,CAACI,YAAV,CAAuBG,MAAvB,GACd,MAAM;EACN,YAAI,CAAC1P,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,EAA2BsU,KAA3B;EACD,OANe,GAOd,MAAM;EACN,YAAI,CAACP,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAvB;EACD,OAZH;EAaD,KAvC0B;;;EA0C3B,QAAIkjB,SAAS,CAACS,MAAV,KAAqBzxB,SAArB,IAAkC+wB,OAAO,CAAC/O,OAAR,CAAgBxH,WAAhB,OAAkC,KAAxE,EAA+E;EAC7EuW,MAAAA,OAAO,CAACW,GAAR,GAAcV,SAAS,CAACS,MAAxB;EACD;EACF;EACF,CA/CM;EAiDA,MAAME,gBAAgB,GAAIZ,OAAD,IAAa;EAC3C;EACA,MAAIA,OAAO,CAACa,UAAR,KAAuB5xB,SAA3B,EAAsC;EACpC,UAAMoe,KAAK,GAAG7a,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAAd;EACA4P,IAAAA,KAAK,CAACV,SAAN,GAAkBqT,OAAO,CAACa,UAA1B;EACAruB,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BkL,KAA1B;EACD;EACF,CAPM;;EC9CA,MAAM0T,gBAAgB,GAAG,CAAC3xB,MAAD,EAASjG,SAAT,KAAuB;EACrD,QAAM63B,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;;EAEA,MAAIypB,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;;EACA,YAAQF,MAAR;EACE,WAAK,WAAL;EACE9xB,QAAAA,MAAM,CAACkG,KAAP,CAAa,6BAAb;EACA5B,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,kBAAL;EACEhK,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,mBAAL;EACE,YAAIyjB,YAAJ,EAAkB;EAChB,gBAAMK,UAAU,GAAG,QAAnB;EACAL,UAAAA,YAAY,CAACG,WAAb,CAAyB;EACvB9S,YAAAA,OAAO,EAAE,YADc;EAEvBrlB,YAAAA,SAFuB;EAGvBo4B,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J,IAHJ;EAIvB8jB,YAAAA;EAJuB,WAAzB,EAMA,GANA;EAQD;;EACD;EA1BJ;EA8BD;EACF,CArCM;;EAuCP,MAAMH,kBAAkB,GAAII,KAAD,IAAW;EACpC,MAAIA,KAAK,CAAC3vB,IAAN,IAAc4vB,UAAU,CAACD,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAZ,CAA5B,EAAoD;EAClD,UAAMI,SAAS,GAAG,IAAIC,GAAJ,CAAQH,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAnB,EAA8BM,MAAhD;;EACA,QAAIJ,KAAK,CAACI,MAAN,KAAiBF,SAArB,EAAgC;EAC9B;EACD;EACF,GALD,MAKO;EACL;EACD;;EACD,MAAIF,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,WAA3B,EAAwC;EAAA;;EACtC;EACA9a,IAAAA,MAAM,CAACouB,SAAP,GAAmBL,KAAK,CAAC3vB,IAAN,CAAWiwB,eAAX,CAA2BD,SAA9C;EACAE,IAAAA,mBAAmB,CACjBP,KAAK,CAAC3vB,IAAN,CAAWiL,GADM,yBAEjB0kB,KAAK,CAAC3vB,IAAN,CAAWmwB,OAFM,qEAEK,IAFL,yBAGjBR,KAAK,CAAC3vB,IAAN,CAAWowB,OAHM,qEAGK,EAHL,EAIjBT,KAAK,CAAC3vB,IAAN,CAAWiwB,eAJM,CAAnB;EAMD,GATD,MASO,IAAIN,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,SAA3B,EAAsC;EAC3C2T,IAAAA,mBAAmB,CAACV,KAAK,CAAC3vB,IAAP,EAAa,IAAb,CAAnB;EACD;EACF,CArBD;EAsBA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,MAAMkwB,mBAAmB,GAAG,CAACjlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,KAA4C;EACtE,MAAIvvB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,IAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD,GAFD,MAEO;EACLvvB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,kBAA1B,EAA8C,MAAM;EAClD,UAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,QAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD;EACF,KAJD;EAKD;EACF,CAVD;;EAYA,IAAIjW,SAAJ;EACA,IAAIuW,aAAa,GAAG,KAApB;EACA,IAAIC,SAAS,GAAG,KAAhB;EACA;EACA;EACA;;EACA,SAASF,aAAT,CAAwBrlB,GAAxB,EAA6BklB,OAA7B,EAAsCC,OAAtC,EAA+CH,eAA/C,EAAgE;EAC9D,MAAI,CAACM,aAAL,EAAoB;EAClB,QAAI3uB,MAAM,CAAC6uB,OAAX,EAAoB;EAClBD,MAAAA,SAAS,GAAG,IAAZ;EACD;;EACD9vB,IAAAA,QAAQ,CAACkkB,IAAT,CAAc/J,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACsuB,IAAT,CAAcnU,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACgwB,eAAT,CAAyB7V,SAAzB,GAAqC,EAArC;EACAb,IAAAA,SAAS,GAAGtZ,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAZ;EACAqO,IAAAA,SAAS,CAAC/iB,EAAV,GAAe,YAAf;EACA+iB,IAAAA,SAAS,CAACuB,KAAV,CAAgBoV,QAAhB,GAA2B,UAA3B,CATkB;;EAUlB3W,IAAAA,SAAS,CAACuB,KAAV,CAAgBZ,OAAhB,GAA0B,MAA1B;EACAja,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B2J,SAA1B;EACA,UAAM4W,WAAW,GAAGjD,YAApB;EACAkD,IAAAA,iBAAiB,CAACD,WAAD,EAAc3lB,GAAd,EAAmBklB,OAAnB,EAA4BC,OAA5B,EAAqCH,eAArC,CAAjB,CACGxE,IADH,CACQ,MAAM;EACV/Z,MAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ;EACA2Q,MAAAA,aAAa,GAAG,IAAhB;EACD,KAJH,EAKG7E,KALH,CAKUnjB,KAAD,IAAW;EAChBmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAAd,EAA+CA,KAA/C;EACD,KAPH;EAQAuoB,IAAAA,OAAO;EACR;EACF;EAED;EACA;EACA;;;EACA,SAASA,OAAT,GAAoB;EAClB,MAAIC,IAAI,GAAGrwB,QAAQ,CAACiL,aAAT,CAAuB,MAAvB,CAAX;EACAolB,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;EACAD,EAAAA,IAAI,CAACnmB,IAAL,GAAY,UAAZ;EACAmmB,EAAAA,IAAI,CAACnlB,IAAL,GAAYgiB,QAAZ;EACAltB,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0gB,IAA1B;EACD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASF,iBAAT,CAA4BD,WAA5B,EAAyC3lB,GAAzC,EAA8CklB,OAA9C,EAAuDC,OAAvD,EAAgEH,eAAhE,EAAiF;EAC/E,SAAO,IAAIzF,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,QAAIuG,MAAM,GAAGvwB,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAb;EACAslB,IAAAA,MAAM,CAACrmB,IAAP,GAAc,QAAd;EACAqmB,IAAAA,MAAM,CAACpC,GAAP,GAAa+B,WAAb;;EACAK,IAAAA,MAAM,CAACC,MAAP,GAAgB,YAAY;EAC1B,UAAI,OAAOtvB,MAAM,CAACuvB,OAAd,KAA0B,UAA9B,EAA0C;EACxCvvB,QAAAA,MAAM,CAACuvB,OAAP,CAAe;EAAEl6B,UAAAA,EAAE,EAAE,aAAN;EAAqBgU,UAAAA,GAArB;EAA0BklB,UAAAA,OAA1B;EAAmCC,UAAAA,OAAnC;EAA4CI,UAAAA,SAA5C;EAAuDP,UAAAA;EAAvD,SAAf;EACAxF,QAAAA,OAAO;EACR,OAHD,MAGO;EACLC,QAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,uCAAV,CAAD,CAAN;EACD;EACF,KAPD;;EAQA8F,IAAAA,MAAM,CAACG,OAAP,GAAiB,UAAU7oB,KAAV,EAAiB;EAChCmiB,MAAAA,MAAM,CAACniB,KAAD,CAAN;EACD,KAFD;;EAGA7H,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B4gB,MAA1B;EACD,GAhBM,CAAP;EAiBD;EAED;EACA;EACA;EACA;EACA;;;EACO,MAAMZ,mBAAmB,GAAG,CAACgB,gBAAD,EAAmBrS,SAAnB,KAAiC;EAClE,QAAMsS,gBAAgB,GAAG,EAAzB;EACA,QAAMlB,OAAO,GAAGpR,SAAS,GAAGqS,gBAAgB,CAACjB,OAApB,GAA8BiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAhF;EACA,MAAInlB,GAAG,GAAGrJ,MAAM,CAACG,QAAP,CAAgB6J,IAA1B;;EACA,MAAIoT,SAAJ,EAAe;EACb,UAAMuS,UAAU,GAAG,IAAIzB,GAAJ,CAAQ7kB,GAAR,CAAnB;EACAsmB,IAAAA,UAAU,CAACrC,YAAX,CAAwBsC,MAAxB,CAA+B,cAA/B;EACAvmB,IAAAA,GAAG,GAAGsmB,UAAU,CAACr1B,QAAX,EAAN;EACD;;EACD,MAAIu1B,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADV;EAEdC,IAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAFZ,GAAhB;;EAKA,QAAMiX,WAAW,GAAG,MAAM;EACxB,QAAI,CAAC1S,SAAD,IAAc,CAACyS,kBAAnB,EAAuC;EACrCA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMyS,YAAY,GAAIzS,OAAD,IAAa;EAChCtd,IAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD,GAFD;;EAIA,QAAM0S,cAAc,GAAG,CAAC1D,OAAD,EAAU2D,QAAV,KAAuB;EAAA;;EAC5C,QAAIA,QAAQ,CAAC9C,UAAb,EAAyB;EACvBD,MAAAA,gBAAgB,CAAC+C,QAAD,CAAhB;EACD;;EACD,iCAAIA,QAAQ,CAACC,gBAAb,0DAAI,sBAA2BvxB,IAA/B,EAAqC;EACnC2tB,MAAAA,OAAO,CAACjT,gBAAR,CAAyB,OAAzB,EAAkC,MAAM;EACtC,cAAM8W,cAAc,GAAG;EACrBzX,UAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADH;EAErBC,UAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W,UAFL;EAGrBuX,UAAAA,OAAO,EAAE;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACC,gBAAT,CAA0BvxB;EAA3C;EAHY,SAAvB;EAKAoxB,QAAAA,YAAY,CAACI,cAAD,CAAZ;EACD,OAPD;EAQD;;EACD,QAAIF,QAAQ,CAAC/nB,MAAb,EAAqB;EACnB,cAAQ+nB,QAAQ,CAAC/nB,MAAT,CAAgBooB,MAAxB;EACE,aAAK,MAAL;EACE,cAAIlT,SAAJ,EAAe;EACbkP,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAAhB,CAAqBuC,IAAzC;EACD,WAFD,MAEO;EACL0P,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAApC;EACD;;EACD;;EACF,aAAK,MAAL;EACEmW,UAAAA,gBAAgB,CAACf,gBAAD,EAAmBQ,QAAQ,CAAC/nB,MAA5B,EAAoCkV,SAApC,CAAhB;EACA;;EACF,aAAK,MAAL;EACEE,UAAAA,OAAO,CAAC8S,OAAR,GAAkB;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACA;EAA1B,WAAlB;EACA5D,UAAAA,cAAc,CAACC,OAAD,EAAU2D,QAAQ,CAAC/nB,MAAT,CAAgBuoB,IAA1B,EAAgCnT,OAAhC,EAAyCF,SAAzC,CAAd;EACA;EAdJ;EAgBD;EACF,GAhCD;;EAkCA,QAAMsT,iBAAiB,GAAIT,QAAD,IAAc;EACtC,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIuH,YAAJ;;EACA,UAAI;EACFA,QAAAA,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuBZ,QAAQ,CAACA,QAAhC,CAAf;EACD,OAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,UAAIF,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAeX,QAAf,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDiS,QAAxD;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAb6B,EAa3B,GAb2B,CAA9B;EAcD,GAhBD;;EAkBAnC,EAAAA,OAAO,CAACnf,OAAR,CAAgB9R,CAAC,IAAI;EACnB,QAAIA,CAAC,CAAC8L,GAAF,KAAUA,GAAd,EAAmB;EACjB9L,MAAAA,CAAC,CAACwzB,YAAF,CAAe1hB,OAAf,CAAuBlK,CAAC,IAAI;EAC1B,YAAI,CAACA,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,YAApB,KAAqC5D,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,eAApB,CAAtC,KACF5D,CAAC,CAAC+C,MAAF,CAAS8oB,WADX,EACwB;EACtBtB,UAAAA,gBAAgB,CAAC5rB,IAAjB,CAAsBqB,CAAtB;EACD,SAHD,MAGO;EACL,cAAImnB,OAAJ;;EACA,cAAI;EACFA,YAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,CAAuB1rB,CAAC,CAAC8qB,QAAzB,CAAV;EACD,WAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,cAAIxE,OAAJ,EAAa;EACXwD,YAAAA,WAAW;EACXE,YAAAA,cAAc,CAAC1D,OAAD,EAAUnnB,CAAV,CAAd;EACD,WAHD,MAGO;EACLurB,YAAAA,iBAAiB,CAACvrB,CAAD,CAAjB;EACD;EACF;EACF,OAhBD;EAiBD;EACF,GApBD;;EAsBA,QAAM8rB,QAAQ,GAAIhB,QAAD,IAAc;EAC7B,UAAM;EAAEiB,MAAAA,GAAF;EAAOC,MAAAA;EAAP,QAAmBC,mBAAmB,CAACnB,QAAQ,CAACA,QAAV,CAA5C;EACA,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIiD,OAAO,GAAG,IAAd;;EACA,UAAI;EACF,cAAM+E,SAAS,GAAGvyB,QAAQ,CAAC+xB,aAAT,CAAuBM,OAAvB,CAAlB;EACA,cAAMG,IAAI,GAAGxyB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAb;EACA7E,QAAAA,OAAO,GAAGgF,IAAI,IAAID,SAAlB;EACD,OAJD,CAIE,OAAOP,CAAP,EAAU;EACVxE,QAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAV;EACD;;EACD,UAAI7E,OAAJ,EAAa;EACX,cAAMiF,OAAO,GAAGzyB,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAhB;EACAwnB,QAAAA,OAAO,CAACtY,SAAR,GAAoBgX,QAAQ,CAAC/nB,MAAT,CAAgB8oB,WAApC;EACA,cAAMQ,UAAU,GAAGD,OAAO,CAACE,iBAA3B;EACAnF,QAAAA,OAAO,CAACoF,qBAAR,CAA8BR,GAA9B,EAAmCM,UAAnC;;EACA,YAAI,CAAClF,OAAO,CAACpX,YAAR,CAAqB,aAArB,CAAL,EAA0C;EACxCoX,UAAAA,OAAO,CAAChe,YAAR,CAAqB,aAArB,EAAoC6iB,OAApC;EACD;;EACD,cAAMQ,eAAe,GAAG7yB,QAAQ,CAAC+xB,aAAT,0BAAwCZ,QAAQ,CAACA,QAAjD,SAAxB;EACAH,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAAC2B,eAAD,EAAkB1B,QAAlB,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAZD,MAYO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDmT,OAAxD;EACA7H,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAzB6B,EAyB3B,GAzB2B,CAA9B;EA0BD,GA7BD;;EA+BA,MAAIjB,gBAAgB,CAAC3zB,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,UAAM61B,SAAS,GAAGlC,gBAAgB,CAACjN,IAAjB,CAAsB,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAU;EAChD,YAAMmV,IAAI,GAAGC,QAAQ,CAAChoB,CAAC,CAACmmB,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,YAAMqyB,IAAI,GAAGD,QAAQ,CAACpV,CAAC,CAACuT,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,aAAOmyB,IAAI,GAAGE,IAAd;EACD,KAJiB,CAAlB;EAKAH,IAAAA,SAAS,CAACviB,OAAV,CAAkB4hB,QAAlB;EACD;EACF,CA3IM;;EA6IP,SAASG,mBAAT,CAA8Bn3B,KAA9B,EAAqC;EACnC,QAAMkC,KAAK,GAAG,qCAAd;EACA,QAAMqN,KAAK,GAAGvP,KAAK,CAACuP,KAAN,CAAYrN,KAAZ,CAAd;;EAEA,MAAIqN,KAAJ,EAAW;EACT,WAAO;EAAE0nB,MAAAA,GAAG,EAAE1nB,KAAK,CAAC,CAAD,CAAZ;EAAiB2nB,MAAAA,OAAO,EAAE3nB,KAAK,CAAC,CAAD;EAA/B,KAAP;EACD;;EACD,SAAO;EAAE0nB,IAAAA,GAAG,EAAE,aAAP;EAAsBC,IAAAA,OAAO,EAAE;EAA/B,GAAP;EACD;EAED;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASX,gBAAT,CAA2Bf,gBAA3B,EAA6CQ,QAA7C,EAA0E;EAAA,MAAnB7S,SAAmB,uEAAP,KAAO;EACxE,QAAM4U,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAIoX,QAAQ,CAACgC,IAAT,IAAiB,IAArB,EAA2B;EACzB,QAAI7U,SAAJ,EAAe;EACb4U,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAT,CAAcrV,IAA5B;EACD,KAFD,MAEO;EACLoV,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAvB;EACD;EACF;;EACD,QAAMC,YAAY,GAAG,IAAIC,WAAJ,CAAgB,8BAAhB,EAAgD;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAAhD,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD;;EAED,SAASlE,UAAT,CAAqBsE,MAArB,EAA6B;EAC3B,MAAI;EACF,UAAMjpB,GAAG,GAAG,IAAI6kB,GAAJ,CAAQoE,MAAR,CAAZ;EACA,WAAOC,OAAO,CAAClpB,GAAD,CAAd;EACD,GAHD,CAGE,OAAOmpB,IAAP,EAAa;EACb,WAAO,KAAP;EACD;EACF;;EAEM,SAASC,cAAT,CAAyBC,WAAzB,EAAsC;EAC3C,QAAM;EAAEC,IAAAA,qBAAqB,GAAG,EAA1B;EAA8BC,IAAAA,SAAS,GAAG;EAA1C,MAAmDF,WAAzD;EACA,QAAMG,aAAa,GAAG,EAAtB,CAF2C;;EAG3C,MAAIC,UAAU,GAAG,CAAjB,CAH2C;;EAI3C,MAAIC,aAAJ;;EACA,WAASC,YAAT,CAAuB1G,OAAvB,EAAgC;EAC9B,UAAMjG,IAAI,GAAGiG,OAAO,CAACjJ,qBAAR,EAAb;EACA,UAAM;EAAEqH,MAAAA,WAAW,EAAED,YAAf;EAA6BD,MAAAA,UAAU,EAAE9D;EAAzC,QAAyD1mB,MAA/D;EACA,WACEqmB,IAAI,CAACU,MAAL,GAAc,CAAd,IACAV,IAAI,CAACjD,KAAL,GAAa,CADb,IAEAiD,IAAI,CAAClD,GAAL,GAAWsH,YAFX,IAGApE,IAAI,CAAC/C,IAAL,GAAYoD,WAJd;EAMD;;EACD,GAAC,YAAY;EACX,UAAMuM,YAAY,wLAAlB,CADW;;EAUX,UAAMC,OAAO,GAAGjH,SAAS,CAACG,UAA1B;;EACA,QAAI,CAACttB,QAAQ,CAACiV,cAAT,CAAwBmf,OAAxB,CAAL,EAAuC;EACrC,YAAMC,YAAY,GAAGr0B,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAArB;EACAopB,MAAAA,YAAY,CAAC99B,EAAb,GAAkB69B,OAAlB;EACAC,MAAAA,YAAY,CAACC,WAAb,GAA2BH,YAA3B;EACAn0B,MAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACD;EACF,GAjBD;;EAkBA,WAASE,gBAAT,CAA2BC,SAA3B,EAAsC;EACpC,aAASC,gBAAT,CAA2BC,gBAA3B,EAA6C;EAC3C,YAAMC,QAAQ,GAAG,EAAjB;EACAD,MAAAA,gBAAgB,CAACnkB,OAAjB,CAAyB4gB,QAAQ,IAAI;EACnC,cAAMyD,eAAe,GAAG50B,QAAQ,CAAC+mB,gBAAT,CAA0BoK,QAA1B,CAAxB;;EACA,YAAIyD,eAAe,CAAC33B,MAApB,EAA4B;EAC1B23B,UAAAA,eAAe,CAACrkB,OAAhB,CAAwBmT,EAAE,IAAI;EAC5B,gBAAIwQ,YAAY,CAACxQ,EAAD,CAAhB,EAAsB;EACpBiR,cAAAA,QAAQ,CAAC3vB,IAAT,CAAc0e,EAAd;EACD;EACF,WAJD;EAKA,iBAAOqQ,aAAa,CAAC5C,QAAD,CAApB,CAN0B;EAO3B,SAPD,MAOO;EACL4C,UAAAA,aAAa,CAAC5C,QAAD,CAAb,GAA0B,KAA1B,CADK;EAEN;EACF,OAZD;EAaA0D,MAAAA,WAAW,CAACF,QAAD,CAAX;EACD;;EACD,aAASG,eAAT,GAA4B;EAC1BL,MAAAA,gBAAgB,CAACn5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,CAAD,CAAhB;EACAC,MAAAA,UAAU;;EACV,UAAI14B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA3B,KAAsC,CAAtC,IAA2C+2B,UAAU,GAAG,EAA5D,EAAgE;EAC9DA,QAAAA,UAAU,GAAG,CAAb;EACAxJ,QAAAA,aAAa,CAACyJ,aAAD,CAAb;EACD;EACF;;EACDQ,IAAAA,gBAAgB,CAACD,SAAD,CAAhB;;EACA,QAAIl5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA/B,EAAuC;EACrCg3B,MAAAA,aAAa,GAAG1J,WAAW,CAACuK,eAAD,EAAkB,GAAlB,CAA3B;EACD;EACF;;EACD,WAASD,WAAT,CAAsBF,QAAtB,EAAgC;EAC9BA,IAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAIA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACE,YAA3B,CAAvB;EACAre,IAAAA,UAAU,CAAC,MAAM;EACf2lB,MAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAI;EACrBA,QAAAA,EAAE,CAACqR,SAAH,CAAar1B,MAAb,CAAoBytB,SAAS,CAACE,YAA9B;EACA3J,QAAAA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACC,YAA3B;EACD,OAHD;EAID,KALS,EAKP0G,SALO,CAAV,CAF8B;EAQ/B;;EACD,WAASmB,gBAAT,GAA6B;EAC3B,QAAIC,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAArC;EACA,UAAMiW,QAAQ,GAAG,IAAIgU,gBAAJ,CAAqB,MAAM;EAC1C,UAAID,YAAY,KAAKl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAvC,EAA6C;EAC3CgqB,QAAAA,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAjC;EACAqpB,QAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;EACF,KALgB,CAAjB;EAMA1S,IAAAA,QAAQ,CAACxG,OAAT,CAAiB3a,QAAQ,CAACkkB,IAA1B,EAAgC;EAAEkR,MAAAA,SAAS,EAAE,IAAb;EAAmBC,MAAAA,OAAO,EAAE;EAA5B,KAAhC;EACD;;EACDn0B,EAAAA,MAAM,CAACqZ,gBAAP,CAAwB,kBAAxB,EAA4C,MAAM;EAChD0a,IAAAA,gBAAgB;EACjB,GAFD;EAGAV,EAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;;EC9aM,MAAMyB,0BAAN,SAAyCrc,WAAzC,CAAqD;EAC1D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKfi/B,QALe,GAKJ,IALI;EAAA,SAMfnc,MANe,GAMN,IANM;EAEb,SAAKA,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAKD,MAAIiW,OAAJ,GAAe;EACb,WAAO,KAAK6F,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI7F,OAAJ,CAAatyB,GAAb,EAAkB;EAChB,QAAI,KAAKm4B,QAAL,KAAkB,IAAtB,EAA4B;EAC1B,WAAKA,QAAL,GAAgBn4B,GAAhB;EACA,WAAKo4B,YAAL;EACD;EACF;;EAEDA,EAAAA,YAAY,GAAI;EACd,SAAKpc,MAAL,CAAYe,SAAZ,GAAwB,KAAKsb,gBAAL,EAAxB;;EACA,QAAI,KAAKC,UAAL,KAAoB,KAAxB,EAA+B;EAC7B,WAAKnb,gBAAL,CAAsB,OAAtB,EAA+B,MAAM;EACnC,cAAMP,UAAU,GAAG,KAAK0V,OAAL,CAAaiG,OAAhC;;EACA,YAAI3b,UAAJ,EAAgB;EACd,eAAK0V,OAAL,CAAaxuB,MAAb,GAAsBA,MAAM,CAAC6Z,IAAP,CAAYf,UAAZ,EAAwB,QAAxB,CAAtB,GAA0D9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B8O,UAAxF;EACD;;EACD9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAND;EAOD;;EACD5Y,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;EACD;;EAED2b,EAAAA,gBAAgB,GAAI;EAClB,4HAIgB,KAAK/F,OAAL,CAAaiG,OAAb,GAAuB,SAAvB,GAAmC,EAJnD,2DAOgB,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAkC,MAPlD,oXAqBM,KAAKlG,OAAL,CAAapU,GAAb,GAAmB,KAAKoU,OAAL,CAAapU,GAAhC,GAAsC,EArB5C,uIAyBkD,KAAKoU,OAAL,CAAamG,eAzB/D,6CA0BwB,KAAKnG,OAAL,CAAaoG,cA1BrC,uCA2BkB,KAAKpG,OAAL,CAAamG,eA3B/B,yHA6BM,KAAKnG,OAAL,CAAanU,IAAb,GAAoB,KAAKmU,OAAL,CAAanU,IAAjC,GAAwC,EA7B9C;EAgCD;;EAnEyD;;ECCrD,MAAMwa,4BAAN,SAA2C9c,WAA3C,CAAuD;EAC5D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAQf4iB,OARe,GAQL,IARK;EAAA,SASf8c,SATe,GASH,IATG;EAAA,SAUf5c,MAVe,GAUN,IAVM;EAAA,SAWf6c,MAXe,GAWN,CAXM;EAAA,SAYfC,sBAZe,GAYU,CAAC,CAZX;EAAA,SAafC,YAbe,GAaA,CAbA;EAAA,SAcfC,SAde,GAcH,IAdG;EAAA,SAefC,oBAfe,GAeQ,IAfR;EAEb,SAAKjd,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;;EACA,QAAI0R,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;EACF;;EAWD,MAAI5b,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKk5B,cAAL;EACD;EACF;;EAED,MAAI5G,OAAJ,GAAe;EACb,WAAO,KAAKhW,MAAL,CAAYO,OAAZ,CAAoByV,OAA3B;EACD;;EAED,MAAIzV,OAAJ,GAAe;EACb,WAAO,KAAKP,MAAL,CAAYO,OAAnB;EACD;;EAEDqc,EAAAA,cAAc,GAAI;EAChB,SAAKL,MAAL,GAAc,KAAKvG,OAAL,CAAazyB,MAA3B;EACA,SAAKmc,MAAL,CAAYe,SAAZ,GAAwB,KAAKoc,SAAL,EAAxB;EACA,UAAMC,QAAQ,GAAG,KAAKC,kBAAL,EAAjB;;EACA,QAAI,KAAKxc,OAAL,CAAayc,WAAjB,EAA8B;EAC5BF,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa2c,WAAtD;EACD;;EACD,QAAI,KAAK3c,OAAL,CAAa4c,aAAjB,EAAgC;EAC9BL,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa6c,gBAAtD;EACAN,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa8c,iBAAtD;EACD;;EACD,SAAKf,SAAL,GAAiBQ,QAAjB;EACA,SAAKpd,MAAL,CAAYzJ,WAAZ,CAAwB6mB,QAAxB;EACA,SAAKQ,UAAL;EACA,SAAKC,kBAAL,GAdgB;;EAgBhB,SAAKC,cAAL;EACA,SAAKC,YAAL;EACAj2B,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,MAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK;EAAnD,KAA1C;EACD;;EAEDid,EAAAA,UAAU,GAAI;EACZ,SAAKhB,SAAL,CAAezb,gBAAf,CAAgC,OAAhC,EAA0C0U,KAAD,IAAW;EAClD,YAAMmI,OAAO,GAAGnI,KAAK,CAACvV,MAAN,CAAanjB,EAA7B;;EACA,UAAI6gC,OAAO,CAAC5V,UAAR,CAAmB,kBAAnB,CAAJ,EAA4C;EAC1C,cAAM6V,QAAQ,GAAG,CAACD,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAlB;;EACA,YAAIy2B,QAAQ,KAAK,KAAKlB,YAAtB,EAAoC;EAClC,eAAKD,sBAAL,GAA8B,KAAKC,YAAnC;EACA,eAAKA,YAAL,GAAoBkB,QAApB;EACA,eAAKJ,kBAAL;EACA,eAAKC,cAAL;EACD;EACF,OARD,MAQO,IAAIE,OAAO,CAAC5V,UAAR,CAAmB,iBAAnB,CAAJ,EAA2C;EAChD4V,QAAAA,OAAO,CAACE,QAAR,CAAiB,OAAjB,IAA4B,KAAKC,QAAL,EAA5B,GAA8C,KAAKC,QAAL,EAA9C;EACA,aAAKN,cAAL;EACD,OAHM,MAGA,IAAIE,OAAO,CAACp2B,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAA5B,EAA+B;EACpC,cAAMkE,IAAI,GAAG,CAACkyB,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAd;EACA,cAAM2E,KAAK,GAAGL,IAAI,GAAG,CAArB;;EACA,YAAIhE,MAAM,CAAC8Z,MAAP,CAAc/L,SAAlB,EAA6B;EAC3B/N,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,YAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,YAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK,UAAnD;EAA+D0d,YAAAA,YAAY,EAAEvyB;EAA7E,WAA3C;EACD;;EACD,cAAMqF,GAAG,GAAG,KAAKmlB,OAAL,CAAanqB,KAAb,EAAoBowB,OAAhC;;EACA,YAAIprB,GAAG,KAAK,EAAZ,EAAgB;EACd,eAAKmlB,OAAL,CAAanqB,KAAb,EAAoBrE,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,CAA7B,GAA0DrJ,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAjF;EACD;EACF;EACF,KAxBD;EAyBD;;EAED4sB,EAAAA,YAAY,GAAI;EACd,SAAKnB,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvD,WAAKoH,oBAAL,GAA4BrnB,UAAU,CAAC,MAAM;EAC3C,aAAKonB,SAAL,GAAiB5L,aAAa,CAAC,KAAK4L,SAAN,CAA9B;EACD,OAFqC,EAEnC,GAFmC,CAAtC;EAGD,KAJD;;EAMA,SAAKJ,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvDyI,MAAAA,YAAY,CAAC,KAAKrB,oBAAN,CAAZ;;EACA,UAAI,KAAKD,SAAL,KAAmB35B,SAAvB,EAAkC;EAChC,aAAKy6B,cAAL;EACD;EACF,KALD;EAMD;;EAEDT,EAAAA,kBAAkB,GAAI;EACpB,UAAMD,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAjB;EACAurB,IAAAA,QAAQ,CAAChnB,YAAT,CAAsB,OAAtB,EAA+B,UAA/B;EAEA,SAAKkgB,OAAL,CAAanf,OAAb,CAAqB,CAAC+iB,MAAD,EAASxnB,CAAT,KAAe;EAClC,YAAM6rB,MAAM,GAAG33B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAf;EACA0sB,MAAAA,MAAM,CAAC5C,SAAP,CAAiBC,GAAjB,CAAqB,gBAArB;EACA2C,MAAAA,MAAM,CAACjC,UAAP,GAAoB,KAApB;EACAiC,MAAAA,MAAM,CAACnoB,YAAP,CAAoB,IAApB,2BAA4C1D,CAAC,GAAG,CAAhD;EACA6rB,MAAAA,MAAM,CAACjI,OAAP,GAAiB4D,MAAjB;EACAkD,MAAAA,QAAQ,CAAC7mB,WAAT,CAAqBgoB,MAArB;EACD,KAPD;EASA,WAAOnB,QAAP;EACD;;EAEDD,EAAAA,SAAS,GAAI;EAAA;;EACX,+SAac,kEAAM7c,MAAN,sFAAcO,OAAd,8EAAuB2b,SAAvB,IAAmC,KAAKlc,MAAL,CAAYO,OAAZ,CAAoB2b,SAAvD,GAAmE,MAbjF,qJAqBI,KAAK3b,OAAL,CAAa2d,UArBjB,qBAsBI,KAAK3d,OAAL,CAAa4d,YAtBjB;EAyBD;;EAEDZ,EAAAA,kBAAkB,GAAI;EACpB,QAAI,KAAKf,sBAAL,KAAgC,CAAC,CAArC,EAAwC;EACtC,YAAM4B,QAAQ,GAAG,KAAK1e,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKihB,sBAAlD,EAAjB;EACA,YAAM6B,UAAU,GAAG,KAAK3e,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKihB,sBAApD,EAAnB;EACA4B,MAAAA,QAAQ,CAAC/C,SAAT,CAAmBr1B,MAAnB,CAA0B,0BAA1B;;EACA,UAAIq4B,UAAJ,EAAgB;EACdA,QAAAA,UAAU,CAAChD,SAAX,CAAqBr1B,MAArB,CAA4B,4BAA5B;EACD;EACF;;EACD,UAAMwF,IAAI,GAAG,KAAKkU,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKkhB,YAAlD,EAAb;EACA,UAAMtY,MAAM,GAAG,KAAKzE,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKkhB,YAApD,EAAf;EACAjxB,IAAAA,IAAI,CAAC6vB,SAAL,CAAeC,GAAf,CAAmB,0BAAnB;;EACA,QAAInX,MAAJ,EAAY;EACVA,MAAAA,MAAM,CAACkX,SAAP,CAAiBC,GAAjB,CAAqB,4BAArB;EACD;EACF;;EAEDkC,EAAAA,cAAc,GAAI;EAChB1M,IAAAA,aAAa,CAAC,KAAK4L,SAAN,CAAb;EACA,SAAKA,SAAL,GAAiB7L,WAAW,CAAC,MAAM;EACjC,WAAKgN,QAAL;EACD,KAF2B,EAEzB,KAAKtd,OAAL,CAAa+d,UAAb,GAA0B,KAAK/d,OAAL,CAAa+d,UAAb,GAA0B,IAApD,GAA2D,IAFlC,CAA5B;EAGD;;EAEDT,EAAAA,QAAQ,GAAI;EACV,SAAKU,IAAL,CAAU,KAAK9B,YAAf,EAA6B,CAAC,KAAKA,YAAL,GAAoB,CAArB,IAA0B,KAAKF,MAA5D;EACD;;EAEDuB,EAAAA,QAAQ,GAAI;EACV,SAAKS,IAAL,CAAU,KAAK9B,YAAf,EAA6B,KAAKA,YAAL,GAAoB,CAAjD;EACD;;EAED8B,EAAAA,IAAI,CAAEC,IAAF,EAAQC,GAAR,EAAa;EACf,SAAKjC,sBAAL,GAA8BgC,IAA9B;EACA,SAAK/B,YAAL,GAAoBgC,GAApB;;EACA,QAAIA,GAAG,KAAK,CAAZ,EAAe;EACb,WAAKhC,YAAL,GAAoB,KAAKF,MAAzB;EACD;;EACD,SAAKgB,kBAAL;EACD;;EAxL2D;;ECEvD,MAAMmB,2BAA2B,GAAIzH,gBAAD,IAAsB;EAAA;;EAC/D,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;;EACD,QAAMtgB,KAAK,4BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,yEAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAMC,QAAQ,GAAGt4B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAjB;EACAqtB,EAAAA,QAAQ,CAAC1e,KAAT,GAAiB+W,gBAAgB,CAAC9W,OAAlC;EACAye,EAAAA,QAAQ,CAACxe,OAAT,GAAmB6W,gBAAgB,CAAC5W,UAApC;EACAue,EAAAA,QAAQ,CAAC1C,SAAT,GAAqBjF,gBAAgB,CAAC1W,OAAjB,CAAyB2b,SAA9C;EACA0C,EAAAA,QAAQ,CAAC5I,OAAT,GAAmBiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAnB;EACA,QAAM6I,WAAW,GAAG5H,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAAtF;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwB2oB,QAAxB;EACD,CAbM;EAeA,MAAME,6BAA6B,GAAI7H,gBAAD,IAAsB;EAAA;;EACjE,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,iCAAnB,MAA0DxI,SAA9D,EAAyE;EACvE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,iCAAtB,EAAyD2K,4BAAzD;EACD;;EACD,QAAM/gB,KAAK,6BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,2EAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAM7B,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,iCAAvB,CAAjB;EACAurB,EAAAA,QAAQ,CAAC9c,MAAT,GAAkBiX,gBAAlB;EACA,QAAMrX,SAAS,GAAGqX,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAApF;EACAsE,EAAAA,SAAS,CAACa,SAAV,GAAsB,EAAtB;EACAb,EAAAA,SAAS,CAAC3J,WAAV,CAAsB6mB,QAAtB;EACD,CAVM;EAYA,MAAMiC,oBAAoB,GAAI9H,gBAAD,IAAsB;EACxD,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAA5B,IAAkC,IAAtC,EAA4C;EAC1CwU,IAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAAxC;EACD;;EACD,QAAM0U,YAAY,GAAG,IAAIC,WAAJ,CAAgB,uBAAhB,EAAyC;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAAzC,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD,CAXM;EAaA,MAAMsF,gBAAgB,GAAI/H,gBAAD,IAAsB;EACpD3f,EAAAA,OAAO,CAACkO,GAAR,CAAY,mCAAZ,EAAiDyR,gBAAjD;EACA,QAAM;EAAC1W,IAAAA,OAAD;EAAUJ,IAAAA,OAAO,EAAE8e,MAAnB;EAA2B5e,IAAAA,UAAU,EAAE6e;EAAvC,MAAoDjI,gBAAgB,IAAI,EAA9E,CAFoD;;EAKpD,QAAM;EAAC3b,IAAAA;EAAD,MAAUiF,OAAO,IAAI,EAA3B;EACA,QAAMyV,OAAO,GAAGzV,OAAO,CAACyV,OAAR,CAAgB,CAAhB,CAAhB;EACA,QAAMnU,IAAI,GAAGmU,OAAO,CAACnU,IAArB,CAPoD;EASpD;EACA;;EAEA,MAAI,CAACvG,KAAD,IAAU,CAACuG,IAAf,EAAqB;EACnBvK,IAAAA,OAAO,CAACnJ,KAAR,CAAc,4BAAd;EACA;EACD,GAfmD;EAkBpD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEA,MAAIkpB,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+e,MADO;EAEd7e,IAAAA,OAAO,EAAE8e;EAFK,GAAhB;;EAKA,QAAM5H,WAAW,GAAG,MAAM;EACxB,QAAI,CAACD,kBAAL,EAAyB;EACvBA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMoT,iBAAiB,GAAI5c,KAAD,IAAW;EACnC,QAAIlL,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,YAAMuH,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAArB;;EACA,UAAI8c,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAevW,IAAf,CAAd;EACAiP,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,iDAAsDlK,KAAtD;EACAwV,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAV6B,EAU3B,GAV2B,CAA9B;EAWD,GAbD;;EAeAD,EAAAA,iBAAiB,CAAC5c,KAAD,CAAjB;EACD,CAnFM;;EAqFP,MAAMkc,cAAc,GAAG,CAAC1D,OAAD,EAAUjS,IAAV,KAAmB;EACxCvK,EAAAA,OAAO,CAACkO,GAAR,CAAY,wBAAZ,EAAsCsO,OAAtC;EACAxc,EAAAA,OAAO,CAACkO,GAAR,CAAY,qBAAZ,EAAmC3D,IAAnC;;EACA,MAAIiS,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACiE,SAAR,GAAoBlW,IAApB;EACD;EACF,CAND;EASA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEO,MAAMsd,UAAU,GAAIlI,gBAAD,IAAsB;EAC9C,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;EACA,QAAM6V,OAAO,GAAGiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAhB;EACA,QAAMyD,IAAI,GAAGzD,OAAO,CAACyD,IAArB;;EACA,MAAIxC,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyBkZ,IAAzB,IAAiC,IAArC,EAA2C;EACzCD,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;EACD;;EACD,QAAM2F,SAAS,GAAG,IAAIzF,WAAJ,CAAgB,4BAAhB,EAA8C;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAA9C,CAAlB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBuF,SAAvB;EACD,CAbM;EAeA,MAAMC,mCAAmC,GAAIn8B,MAAD,IAAY;EAC7DoU,EAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ,EAD6D;EAI7D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACA,QAAMsP,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;EACA+L,EAAAA,OAAO,CAACkO,GAAR,CAAY,QAAZ,EAAsBwP,MAAtB;;EACA,MAAIA,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;EACA5d,IAAAA,OAAO,CAACkO,GAAR,CAAY,QAAZ,EAAsBwP,MAAtB;EACA1d,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4ByP,YAA5B;;EACA,YAAQD,MAAR;EACE,WAAK,qBAAL;EACE1d,QAAAA,OAAO,CAACkO,GAAR,CAAY,qBAAZ;;EACA,YAAIyP,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB,SAAzB,EAAoC,GAApC;EACA5tB,UAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C;EACA;EACA;EACA;EACA,kBAAM+J,SAAS,GAAG75B,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAlB;EACA0R,YAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4B8Z,SAAS,CAACC,YAAtC;EACA,kBAAMC,WAAW,GAAGF,SAAS,CAACC,YAA9B;EACA,kBAAM5d,UAAU,GAAG6d,WAAW,CAAC,CAAD,CAAX,CAAe7d,UAAlC,CAR4C;;EAU5CrK,YAAAA,OAAO,CAACkO,GAAR,CAAY,YAAZ,EAA0B8Z,SAAS,CAACC,YAAV,CAAuB,CAAvB,EAA0B5d,UAApD;;EACA,gBAAI2d,SAAS,IAAI3d,UAAU,CAAC,cAAD,CAAV,KAA+B,aAA5C,IAA6DA,UAAU,CAACnR,IAAX,KAAoB,CAArF,EAAwF;EACtFwuB,cAAAA,gBAAgB,CAACQ,WAAD,CAAhB;EACD;;EACDloB,YAAAA,OAAO,CAACkO,GAAR,CAAY,OAAZ,EAAqB+P,KAArB;EACD,WAfD,EAeG,KAfH;EAgBD;;EACD;EAtBJ;EA0BD;EACF,CApDM;;ECvNA,MAAMkK,gBAAgB,GAAG,CAACC,MAAD,EAASzI,gBAAT,KAA8B;EAC5D,QAAM0I,IAAI,GAAGn4B,MAAM,CAAC8Z,MAAP,CAAcoe,MAAd,CAAb;;EACA,MAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;EAC9B,QAAI1I,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvC2a,MAAAA,IAAI,CAAC1I,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAA1B,CAAJ;EACD,KAFD,MAEO;EACL2a,MAAAA,IAAI;EACL;EACF;EACF,CATM;EAWA,MAAMC,0BAA0B,GAAG,CAAC3I,gBAAD,EAAmBpV,IAAnB,KAA4B;EACpE,QAAMgV,MAAM,qDACkBI,gBAAgB,CAAC9W,OADnC,8oCAoB8D8W,gBAAgB,CAAC5W,UApB/E,iIAAZ;EA0BA,SAAOwB,IAAI,CAACje,OAAL,CAAa,iBAAb,YAAmCizB,MAAnC,UAAP;EACD,CA5BM;EA8BA,MAAMgJ,eAAe,GAAG,CAACC,SAAD,EAAYC,QAAZ,KAAyB;EACtD,QAAM3pB,OAAO,GAAGF,iBAAiB,EAAjC;EACA,QAAMa,SAAS,GAAGX,OAAO,CAAC2pB,QAAD,CAAP,CAAkBnzB,MAApC;;EACA,MAAImK,SAAS,IAAI,IAAb,IAAqBgpB,QAAzB,EAAmC;EACjC,SAAK,MAAM54B,GAAX,IAAkB24B,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAACz9B,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,eAAO4P,SAAS,CAAC+oB,SAAS,CAAC34B,GAAD,CAAV,CAAhB;;EACA,YAAI/B,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAJ,EAAwC;EACtC,gBAAMwY,WAAW,GAAGjR,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAApB;EACA,gBAAMgQ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,cAAI2Y,WAAW,CAACxI,IAAD,CAAX,IAAqBwI,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,CAArB,IAAoDrpB,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,EAA4BD,SAAS,CAAC34B,GAAD,CAArC,CAAxD,EAAqG;EACnG,mBAAOuP,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,EAA4BD,SAAS,CAAC34B,GAAD,CAArC,CAAP;EACA/B,YAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF;EACF;EACF;EACF;;EACDJ,EAAAA,kBAAkB,CAACF,OAAD,CAAlB;EACD,CAnBM;EAqBA,MAAM4pB,aAAa,GAAIC,SAAD,IAAe;EAC1C,MAAIp4B,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,IAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,QAAIwJ,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBq2B,SAAtB;EACA;EACD;EACF;;EACD,OAAK,MAAM98B,GAAX,IAAkB88B,SAAlB,EAA6B;EAC3B,QAAIA,SAAS,CAAC59B,cAAV,CAAyBc,GAAzB,CAAJ,EAAmC;EACjC,YAAM+8B,SAAS,GAAGr4B,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,CAAlB;EACA,YAAMg9B,SAAS,GAAGF,SAAS,CAAC98B,GAAD,CAA3B;;EACA,UAAI0E,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,KAA4B,IAAhC,EAAsC;EACpC,YAAIg9B,SAAS,CAAC,CAAD,CAAT,IAAgB,IAAhB,IAAwBA,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAApD,EAAyD;EACvDr4B,UAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bg9B,SAA3B;EACD;EACF,OAJD,MAIO;EACLt4B,QAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bg9B,SAA3B;EACD;EACF;EACF;EACF,CArBM;EAuBA,MAAMC,mBAAmB,GAAG,CAACnJ,gBAAD,EAAmBoJ,QAAnB,KAAgC;EACjE,QAAMz6B,IAAI,GAAG,EAAb;EACAA,EAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,EAAAA,IAAI,CAACmK,OAAL,GAAehQ,mBAAf;EACA6F,EAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,KAAC5Q,OAAD,GAAWm3B,gBAAgB,CAAC9W;EAA9B,GAAf;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/Bza,IAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,MAAAA,UAAU,EAAE4W,gBAAgB,CAAC5W;EAAhD,KAAf;EACD;;EACDggB,EAAAA,QAAQ,CAAC1vB,YAAT,CAAsB/K,IAAtB;EACD,CATM;EAWA,MAAM06B,eAAe,GAAG,CAACrE,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,EAAyDC,OAAzD,EAAkEhhB,QAAlE,KAA+E;EAC5G,MAAIwc,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,QAAIyE,UAAJ;EACA,QAAIC,aAAJ;;EACA,QAAIH,QAAJ,EAAc;EACZE,MAAAA,UAAU,GAAGH,UAAb;EACD,KAFD,MAEO,IAAIA,UAAU,KAAK,IAAnB,EAAyB;EAC9BI,MAAAA,aAAa,GAAGJ,UAAU,CAAC5qB,sBAAX,CAAkC,UAAlC,CAAhB;;EACA,UAAIgrB,aAAa,IAAI,IAAjB,IAAyBA,aAAa,CAACp9B,MAAd,KAAyB,CAAtD,EAAyD;EACvDm9B,QAAAA,UAAU,GAAGC,aAAa,CAAC,CAAD,CAA1B;EACD;EACF;;EACD,UAAMjB,MAAM,GAAGzI,gBAAgB,CAAC1W,OAAjB,CAAyBmf,MAAxC;EACA,UAAM9a,SAAS,GAAGqS,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA3C;;EACA,QAAIhc,SAAS,IAAI,IAAjB,EAAuB;EACrBqX,MAAAA,OAAO,IAAI4E,eAAe,CAACJ,OAAD,EAAUhhB,QAAV,CAA1B;EACD;;EAED,QAAIihB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,CAACrM,OAAX,GAAqB,MAAM;EACzB;EACA,YAAIqL,MAAM,IAAI,IAAd,EAAoB;EAClB;EACA,cAAI9a,SAAS,IAAI,IAAjB,EAAuB;EACrBtQ,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACD;;EACDwD,UAAAA,gBAAgB,CAACC,MAAD,EAASzI,gBAAT,CAAhB,CALkB;;EAOlB9b,UAAAA,WAAW,CAAC,IAAD,EAAOG,KAAP,EAAcmE,QAAQ,CAACe,SAAvB,CAAX;EACD,SARD,MAQO;EACL,gBAAMsgB,MAAM,GAAG7J,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAAzB,GAAmC3J,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAA5D,GAAsE,IAAIvG,GAAJ,CAAQuB,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAjC,EAA0CnH,YAA1C,CAAuDvpB,GAAvD,CAA2D,GAA3D,CAArF;EACA,gBAAM8L,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;;EAEA,cAAI45B,MAAM,KAAK,YAAf,EAA6B;EAC3B,gBAAI,CAAC7J,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA9B,EAAuC;EACrCp5B,cAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,gBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,gBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,eAAlD;EACD,aAH0B;;;EAK3B7Y,YAAAA,MAAM,CAAC+N,SAAP,CAAiBwrB,aAAjB,CAA+Bz1B,IAA/B,CAAoC;EAClC01B,cAAAA,UAAU,EAAE;EADsB,aAApC;EAGA7lB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WATD,MASO,IAAIsgB,MAAM,KAAK,MAAf,EAAuB;EAC5B;EACA3lB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WAHM,MAGA;EACL;EACA,gBAAIyW,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;;EACA,kBAAIhF,gBAAgB,CAAC1W,OAAjB,CAAyB,aAAzB,CAAJ,EAA6C;EAC3CpF,gBAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD;;EACD,kBAAI,CAACyW,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA9B,EAAuC;EACrCp5B,gBAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,kBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,kBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,iBAAlD;EACD;EACF,aARD,MAQO;EACL7Y,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF;EACF,OAzCD;EA0CD;EACF;EACF,CA/DM;EAiEA,MAAM4E,eAAe,GAAG,CAACJ,OAAD,EAAUhhB,QAAV,KAAuB;EACpD,QAAMjW,OAAO,GAAGi3B,OAAO,CAACxyB,OAAR,EAAhB;;EACA,QAAMgzB,UAAU,GAAGxhB,QAAQ,CAACpS,sBAAT,EAAnB;;EACA,SAAO,aAAavG,kBAAkB,CAAC2L,gBAAgB,CAACjJ,OAAO,GAAG,GAAV,GAAgBy3B,UAAU,CAAC5kB,CAA3B,GAA+B,GAA/B,GAAqC4kB,UAAU,CAACt0B,CAAjD,CAAjB,CAAtC;EACD,CAJM;;ECvKA,MAAMu0B,oBAAoB,GAAG,CAACjK,gBAAD,EAAmBxX,QAAnB,KAAgC;EAClE,QAAMnE,KAAK,GAAG,kBAAd;EACA,QAAM6lB,cAAc,GAAG76B,QAAQ,CAACiL,aAAT,CAAuB,wBAAvB,CAAvB;EACA4vB,EAAAA,cAAc,CAACz0B,OAAf,GAAyB+S,QAAzB;EACA0hB,EAAAA,cAAc,CAACnhB,MAAf,GAAwBiX,gBAAxB;EACA,QAAM4H,WAAW,GAAGv4B,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAApB;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC1d,KAAZ,CAAkBW,UAAlB,GAA+B,QAA/B;EACA+c,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwBkrB,cAAxB;EACD,CATM;;ECAA,MAAMC,kBAAkB,GAAIjgB,KAAD,IAAW;EAC3C,QAAMkgB,gBAAgB,GAAGlgB,KAAK,CAACmgB,IAAN,CAAWC,aAAX,GAA2BpgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkBC,WAAlB,GAAgC,CAA3D,GAA+D,CAAxF;EACA,QAAMC,WAAW,GAAG,KAAK,CAAzB,CAF2C;;EAG3C,QAAMC,gBAAgB,GAAG,MAAMD,WAAN,GAAoBL,gBAA7C;EAEA,+GAMwBlgB,KAAK,CAACygB,OAAN,CAAcC,KAAd,IAAuB,oBAN/C,gLAgBwB1gB,KAAK,CAACmgB,IAAN,CAAWO,KAhBnC,qCAiBqB1gB,KAAK,CAACmgB,IAAN,CAAWQ,YAjBhC,qDAmBaH,gBAnBb,2HAuBMxgB,KAAK,CAACmgB,IAAN,CAAWC,aAAX,qCACgBpgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkBC,WADlC,wCAEgBtgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkB7b,WAFlC,+CAIE,EA3BR,yfAsDaxE,KAAK,CAACiD,IAAN,CAAWwB,UAtDxB,gKA8DazE,KAAK,CAACiD,IAAN,CAAWyB,gBA9DxB,4kBAyFwB1E,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4Bjc,WAzFpD,6BA0Fa3E,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BxX,SA1FzC,qCA2FqBpJ,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BD,YA3FjD,wBA4FM3gB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BR,aAA5B,uCAEkBpgB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BP,MAA5B,CAAmCC,WAFrD,0CAGkBtgB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BP,MAA5B,CAAmC7b,WAHrD,mDAME,eAlGR,wEAsGwBxE,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8Blc,WAtGtD,6BAuGa3E,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BzX,SAvG3C,qCAwGqBpJ,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BF,YAxGnD,wBAyGM3gB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BT,aAA9B,uCAEkBpgB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BR,MAA9B,CAAqCC,WAFvD,0CAGkBtgB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BR,MAA9B,CAAqC7b,WAHvD,mDAME,eA/GR;EAsHD,CA3HM;EA6HA,MAAMsc,iBAAiB,GAAI9gB,KAAD,IAAW;EAC1C,kHAIwBA,KAAK,CAACmgB,IAAN,CAAW5b,eAJnC;EAuED,CAxEM;;EC7HA,MAAMwc,QAAQ,GAAG,MAAM;EAC5B,QAAMC,EAAE,GAAG/c,SAAS,CAACgd,SAArB;EACA,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,KAAyB4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAAhC;EACD,CAHM;EAKA,MAAM8xB,SAAS,GAAG,MAAM;EAC7B,QAAMF,EAAE,GAAG/c,SAAS,CAACgd,SAArB;EACA,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,SAAZ,KAA0B4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAAjC;EACD,CAHM;EAKA,MAAM+xB,QAAQ,GAAG,MAAM;EAC5B,QAAMH,EAAE,GAAG/c,SAAS,CAACgd,SAArB,CAD4B;;EAG5B,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,KACA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CADD,IAEA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAFD,IAGA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,CAHD,IAIA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,SAAZ,CAJR;EAKD,CARM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECMQ,MAAMgyB,mBAAN,SAAkCpzB,KAAlC,CAAwC;EAQrDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXwJ,MAAAA,OAFW;EAGXF,MAAAA,OAHW;EAIXqI,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,0EAAuB,6DAAvB;EACA,sEAAqB,IAArB;EACA,oEAAkBnF,MAAlB;EACA,8DAAexM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACD;;EAEDvJ,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CgkC,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,sEAAmBA,WAAnB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAar0B,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAEDs0B,EAAAA,MAAM,GAAgB;EAAA,QAAdvX,OAAc,uEAAJ,EAAI;EACpB,UAAM;EAAEwX,MAAAA,MAAF;EAAU1B,MAAAA;EAAV,QAAyB9V,OAA/B;EACAyX,IAAAA,UAAU,6BAAC,IAAD,qDAAe,IAAf,uDAA8B,IAA9B,2BAA6CD,MAA7C,EAAqD1B,UAArD,8BAAiE,IAAjE,gCAAV;EACD;;EAEDnxB,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,kGAAmB,IAAnB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAaD+yB,EAAAA,yBAAyB,CAAEC,oBAAF,EAAwBC,iBAAxB,EAA2CC,aAA3C,EAA0DC,cAA1D,EAA0E;EACjG,QAAId,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,4GAAsCQ,oBAAtC,EAA4DC,iBAA5D;EACD,KAFD,MAEO,IAAIR,QAAQ,EAAZ,EAAgB;EACrB,8FAA+BO,oBAA/B,EAAqDE,aAArD,EAAoEC,cAApE,EAAoFF,iBAApF;EACD;EACF;;EAEDG,EAAAA,uBAAuB,CAAEC,oBAAF,EAAwB;EAC7C,sEAAqBA,oBAArB;EACD;;EA4aDC,EAAAA,cAAc,CAAEC,OAAF,EAAWF,oBAAX,EAAiC;EAC7Cr7B,IAAAA,GAAG,CAACkC,cAAJ,GAAqBq5B,OAArB;;EACA,QAAIF,oBAAoB,IAAI,IAA5B,EAAkC;EAChC,WAAKD,uBAAL,CAA6BC,oBAA7B;EACD;;EACD,QAAIr7B,GAAG,CAACkC,cAAJ,IAAsBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAvC,EAA4D;EAC1D,0GAAqCvC,GAAG,CAACsC,QAAJ,CAAaq4B,WAAlD;EACD,KAFD,MAEO,IAAI,CAAC36B,GAAG,CAACkC,cAAL,IAAuBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAxC,EAA6D;EAClE,8DAAa+D,KAAb,CAAmB,4FAAnB;EACD;EACF;;EAvfoD;;+CA4CtCq0B,aAAa;EAC1B,MAAI36B,GAAG,CAACkC,cAAJ,IAAsBy4B,WAAW,CAACj/B,MAAZ,GAAqB,CAA/C,EAAkD;EAChD,wGAAqCi/B,WAArC;EACD,GAFD,MAEO,IAAI36B,GAAG,CAACkC,cAAJ,IAAsB,IAAtB,IAA8By4B,WAAW,CAACj/B,MAAZ,GAAqB,CAAvD,EAA0D;EAC/DsE,IAAAA,GAAG,CAACsC,QAAJ,CAAaC,mBAAb,GAAmC,IAAnC;EACAvC,IAAAA,GAAG,CAACsC,QAAJ,CAAaq4B,WAAb,GAA2BA,WAAW,CAACptB,KAAZ,EAA3B;EACD,GAHM,MAGA,IAAIvN,GAAG,CAACkC,cAAJ,KAAuB,KAAvB,IAAgCy4B,WAAW,CAACj/B,MAAZ,GAAqB,CAAzD,EAA4D;EACjE,4DAAa4K,KAAb,CAAmB,+DAAnB;EACD;EACF;;yEAc4B;EAC3B,SAAO,iBAAiB3G,MAAxB;EACD;;uEAE0Bq7B,sBAAsBE,eAAeC,gBAAgBF,mBAAmB;EACjG,MAAI,6FAAoC,mEAAsB,IAA9D,EAAoE;EAClE19B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACAmkB,IAAAA,SAAS,CAACie,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDzR,IAApD,CAA0DkS,YAAD,IAAkB;EACzE/7B,MAAAA,MAAM,CAACg8B,YAAP,CAAoBC,iBAApB,GAAwCpS,IAAxC,CAA8CqS,UAAD,IAAgB;EAC3D,YAAIA,UAAU,KAAK,SAAnB,EAA8B;EAC5B,gBAAMC,YAAY,GAAG;EACnBT,YAAAA,oBAAoB,8BAAE,IAAF,+BADD;EAEnBU,YAAAA,eAAe,EAAE;EAFE,WAArB;;EAIA,kEAAaC,IAAb,CAAkB,YAAYp+B,IAAI,CAACC,SAAL,CAAei+B,YAAf,CAA9B;;EACA,gBAAMG,gBAAgB,GAAG,MAAM;EAC7BP,YAAAA,YAAY,CAACQ,WAAb,CAAyBC,SAAzB,CAAmCL,YAAnC,EAAiDtS,IAAjD,CAAuDtV,YAAD,IAAkB;EACtE,sEAAa8nB,IAAb,CAAkB,0CAA0C9nB,YAAY,CAACkoB,QAAzE;;EACA,sEAAaJ,IAAb,CAAkB,wBAAwBp+B,IAAI,CAACC,SAAL,CAAe;EACvDw9B,gBAAAA,oBAAoB,8BAAE,IAAF,+BADmC;EAEvDU,gBAAAA,eAAe,EAAE;EAFsC,eAAf,CAA1C;;EAIA,sEAAaC,IAAb,CAAkB,iCAAiCp+B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA,oBAAMmoB,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EAEAmoB,cAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAha,cAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EACA,wEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,kBAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,gBAAAA,oBAAoB;EACrB;;EACD,oBAAMuB,mBAAmB,GAAG99B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,kBAAI6oB,mBAAJ,EAAyB;EACvBA,gBAAAA,mBAAmB,CAACxuB,UAApB,CAA+BC,WAA/B,CAA2CuuB,mBAA3C;EACD;EACF,aArBD;EAsBD,WAvBD;;EAyBA,gBAAMf,aAAa,GAAGE,YAAY,CAACc,UAAb,IAA2Bd,YAAY,CAACe,OAAxC,IAAmDf,YAAY,CAACgB,MAAtF;;EACA,cAAIlB,aAAa,IAAIA,aAAa,CAACmB,KAAd,KAAwB,WAA7C,EAA0D;EACxD;EACAV,YAAAA,gBAAgB;EACjB,WAHD,MAGO,IAAIT,aAAJ,EAAmB;EACxB;EACAA,YAAAA,aAAa,CAACxiB,gBAAd,CAA+B,aAA/B,EAA+C0U,KAAD,IAAW;EACvD,kBAAIA,KAAK,CAACvV,MAAN,CAAawkB,KAAb,KAAuB,WAA3B,EAAwC;EACtC,wEAAaX,IAAb,CAAkB,yDAAlB;;EACAC,gBAAAA,gBAAgB;EACjB;EACF,aALD;EAMD;EACF;EACF,OA9CD;EA+CD,KAhDD;EAiDD,GAnDD,MAmDO;EACL;EACA,QAAI,OAAOf,aAAP,KAAyB,WAA7B,EAA0C;EACxC,8DAAa50B,KAAb,CAAmB,0CAAnB;EACD;;EACD,QAAI,OAAO60B,cAAP,KAA0B,WAA9B,EAA2C;EACzC,8DAAa70B,KAAb,CAAmB,oDAAnB;EACD;;EACD,QAAI,YAAY3G,MAAZ,IAAsB,sBAAsBA,MAAM,CAACi9B,MAAvD,EAA+D;EAC7Dj9B,MAAAA,MAAM,CAACi9B,MAAP,CAAcC,gBAAd,CAA+BjB,iBAA/B,CACET,cADF,EAEED,aAFF,EAEiB,EAFjB,EAEsBhnB,YAAD,IAAkB;EACnC,YAAIA,YAAY,CAAC2nB,UAAb,KAA4B,SAAhC,EAA2C;EACzC,gBAAMQ,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EACAmoB,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BloB,YAAY,CAAC4oB,WAAzC;EACAT,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;;EACA,kEAAaf,IAAb,CAAkB,wBAAwBp+B,IAAI,CAACC,SAAL,CAAe;EACvDs9B,YAAAA,cADuD;EAEvDD,YAAAA;EAFuD,WAAf,CAA1C;;EAIA,kEAAac,IAAb,CAAkB,iCAAiCp+B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA3W,UAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EAEA,oEAAcC,aAAd,CAA4BD,gBAA5B;;EACA,kEAAaL,IAAb,CAAkB,+CAA+C9nB,YAAY,CAAC4oB,WAA9E;EACD,SAdD,MAcO,IAAI5oB,YAAY,CAAC2nB,UAAb,KAA4B,QAAhC,EAA0C;EAC/C,kEAAaG,IAAb,CAAkB,sCAAlB;EACD;EACF,OApBH;EAqBD;EACF;EACF;;qFAKiChB,sBAAsBC,mBAAmB;EACzE,MAAI+B,iBAAiB,GAAG,EAAxB;;EAEA,MAAI,mBAAmBzf,SAAvB,EAAkC;EAChCA,IAAAA,SAAS,CAACie,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDzR,IAApD,CAA0DkS,YAAD,IAAkB;EACzE,UAAI,OAAOuB,iBAAP,KAA6B,WAAjC,EAA8C;EAAE;EAC9C;EACA;EACA,eAAO,IAAI1U,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACkT,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD;;EACDsB,MAAAA,iBAAiB,GAAGtB,YAAY,CAACwB,KAAjC,CANyE;EASzE;EACA;;EACA,YAAMC,YAAY,GAAG,wBAArB;EACA,YAAMC,qBAAqB,GAAGD,YAAY,CAACpiC,IAAb,CAAkBkgC,iBAAlB,CAA9B;;EACA,UAAImC,qBAAJ,EAA2B;EACzB,eAAO7f,SAAS,CAACie,aAAV,CAAwB6B,KAA/B;EACD,OAFD,MAEO;EACL,YAAIhD,QAAQ,EAAZ,EAAgB;EACd,iBAAO,IAAI9R,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACkT,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD,SAFD,MAEO;EACL,iBAAOne,SAAS,CAACie,aAAV,CAAwB8B,gBAAxB,EAAP;EACD;EACF;EACF,KAtBD,EAsBG9T,IAtBH,CAsBS+T,yBAAD,IAA+B;EACrC;EACA,UAAI/C,SAAS,MAAMlzB,KAAK,CAACC,OAAN,CAAcg2B,yBAAd,CAAnB,EAA6D;EAC3DA,QAAAA,yBAAyB,GAAGA,yBAAyB,CAACld,MAA1B,CAAkC9V,CAAD,IAAOA,CAAC,CAAC2yB,KAAF,KAAYF,iBAApD,EAAuE,CAAvE,CAA5B;EACD;;EACD,YAAMlB,YAAY,GAAG;EAAEC,QAAAA,eAAe,EAAE;EAAnB,OAArB;;EAEA,UAAI,mEAAsB,IAA1B,EAAgC;EAC9BD,QAAAA,YAAY,CAACT,oBAAb,GAAoCtxB,qBAAqB,6BAAC,IAAD,gCAAzD;EACD;;EAEDwzB,MAAAA,yBAAyB,CAACrB,WAA1B,CAAsCC,SAAtC,CAAgDL,YAAhD,EACGtS,IADH,CACStV,YAAD,IAAkB;EACtB,gEAAa8nB,IAAb,CAAkB,0CAA0C9nB,YAAY,CAACkoB,QAAzE;;EACA,gEAAa76B,KAAb,CAAmB,wBAAwB3D,IAAI,CAACC,SAAL,CAAei+B,YAAf,CAA3C;;EACA,gEAAav6B,KAAb,CAAmB,iCAAiC3D,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAApD,EAHsB;;;EAMtB,cAAMmoB,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB,CANsB;;EAStB,YAAImmB,QAAQ,EAAZ,EAAgB;EACdgC,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACA8kB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;EACD,SAHD,MAGO,IAAIvC,SAAS,EAAb,EAAiB;EACtB6B,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACA8kB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,SAA3B;EACD;;EACDx/B,QAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EACA,kEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,YAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,UAAAA,oBAAoB;EACrB;;EACD,cAAMuB,mBAAmB,GAAG99B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,YAAI6oB,mBAAJ,EAAyB;EACvBA,UAAAA,mBAAmB,CAACxuB,UAApB,CAA+BC,WAA/B,CAA2CuuB,mBAA3C;EACD;EACF,OA3BH,EA2BK9S,KA3BL,CA2BYnjB,KAAD,IAAW;EAClB;EACAi3B,QAAAA,yBAAyB,CAACrB,WAA1B,CAAsCsB,eAAtC,GAAwDhU,IAAxD,CAA8DtV,YAAD,IAAkB;EAC7E,cAAIA,YAAY,KAAK,IAArB,EAA2B;EACzBA,YAAAA,YAAY,CAACupB,WAAb,GAA2BjU,IAA3B,CAAiCkU,UAAD,IAAgB;EAC9C;EACA,sEAAa1B,IAAb,CAAkB,2BAAlB;;EACAr8B,cAAAA,MAAM,CAAC+N,SAAP,CAAiBwrB,aAAjB,CAA+Bz1B,IAA/B,CAAoC;EAClC01B,gBAAAA,UAAU,EAAE;EADsB,eAApC;EAGD,aAND,EAMG1P,KANH,CAMUvrB,CAAD,IAAO;EACd;EACA,sEAAaoI,KAAb,CAAmB,0BAA0BpI,CAA7C;EACD,aATD;EAUD;EACF,SAbD;;EAcA,gEAAaoI,KAAb,CAAmB,wBAAwBA,KAA3C;EACD,OA5CH;EA6CD,KA9ED,EA8EGmjB,KA9EH,CA8EUrpB,GAAD,IAAS;EAChB,8DAAakG,KAAb,CAAmB,uCAAuClG,GAA1D;EACD,KAhFD;EAiFD;EACF;;mDAEiB;EAChB,QAAMu9B,SAAS,GAAGl/B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAlB;EACAi0B,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,MAAvB,EAA+B,iBAA/B;EACA0vB,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,IAAvB,EAA6B,eAA7B;EACA0vB,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,KAAvB,8BAA8B,IAA9B,qCAJgB;;EAOhBxP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDuvB,SAArD;EAEA,SAAOA,SAAP;EACD;;yDAEoB;EACnB,QAAMA,SAAS,GAAGl/B,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAlB;EACAiqB,EAAAA,SAAS,CAAC5vB,UAAV,CAAqBC,WAArB,CAAiC2vB,SAAjC;EACD;;mFAEgChD,aAAa;EAC5C;EACA,MAAIiD,SAAJ;EACA,MAAIC,QAAJ;EACA,MAAIC,YAAJ;EACA,MAAIC,gBAAJ;EACA,MAAIC,aAAJ;EACA,MAAI7E,UAAJ;EACA,MAAI8E,qBAAJ;EACA,MAAIC,UAAJ;EACA,MAAIC,cAAJ;EACA,MAAInD,oBAAJ;EACA,MAAIC,iBAAJ;EACA,MAAImD,cAAJ;EACA,MAAIC,eAAJ;EACA,MAAInD,aAAJ;EACA,MAAIoD,qBAAJ;EACA,QAAMC,yBAAyB,GAAG9D,QAAQ,MAAO,iBAAiB96B,MAAhC,IAA2CpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA3C,IAAuG,oEAAuB,IAAhK;;EAEA,MAAIuhC,WAAW,CAACj/B,MAAZ,KAAuB,CAA3B,EAA8B;EAC5B,QAAI5B,QAAQ,CAAC6gC,WAAW,CAAC,CAAD,CAAZ,CAAZ,EAA8B;EAC5B,YAAM6D,QAAQ,GAAG7D,WAAW,CAAC,CAAD,CAA5B;EACAiD,MAAAA,SAAS,GAAGY,QAAQ,CAACZ,SAArB;EACAC,MAAAA,QAAQ,GAAGW,QAAQ,CAACX,QAApB;EACAC,MAAAA,YAAY,GAAGU,QAAQ,CAACV,YAAxB;EACAC,MAAAA,gBAAgB,GAAGS,QAAQ,CAACT,gBAA5B;EACAC,MAAAA,aAAa,GAAGQ,QAAQ,CAACR,aAAzB;EACA7E,MAAAA,UAAU,GAAGqF,QAAQ,CAACrF,UAAtB;EACA8E,MAAAA,qBAAqB,GAAGO,QAAQ,CAACP,qBAAjC;EACAC,MAAAA,UAAU,GAAGM,QAAQ,CAACN,UAAtB;EACAC,MAAAA,cAAc,GAAGK,QAAQ,CAACL,cAA1B;EACAnD,MAAAA,oBAAoB,GAAGwD,QAAQ,CAACxD,oBAAhC;EACAC,MAAAA,iBAAiB,GAAGuD,QAAQ,CAACvD,iBAA7B;EACAmD,MAAAA,cAAc,GAAGI,QAAQ,CAACJ,cAA1B;EACAC,MAAAA,eAAe,GAAGG,QAAQ,CAACH,eAA3B;EACAnD,MAAAA,aAAa,GAAGsD,QAAQ,CAACtD,aAAzB;EACAoD,MAAAA,qBAAqB,GAAGE,QAAQ,CAACF,qBAAjC;EACD;EACF,GAnBD,MAmBO;EACLV,IAAAA,SAAS,GAAGjD,WAAW,CAAC,CAAD,CAAvB;EACAkD,IAAAA,QAAQ,GAAGlD,WAAW,CAAC,CAAD,CAAtB;EACAmD,IAAAA,YAAY,GAAGnD,WAAW,CAAC,CAAD,CAA1B;EACAoD,IAAAA,gBAAgB,GAAGpD,WAAW,CAAC,CAAD,CAA9B;EACAqD,IAAAA,aAAa,GAAGrD,WAAW,CAAC,CAAD,CAA3B;EACAxB,IAAAA,UAAU,GAAGwB,WAAW,CAAC,CAAD,CAAxB;EACAsD,IAAAA,qBAAqB,GAAGtD,WAAW,CAAC,CAAD,CAAnC;EACD;;EAED,MAAIxB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,IAAAA,UAAU,GAAG,KAAb;EACD;;EAED,MAAI8B,iBAAiB,IAAI,IAAzB,EAA+B;EAC7BA,IAAAA,iBAAiB,GAAG,kBAApB;EACD,GAtD2C;;;EAyD5C,MAAI,OAAO1d,SAAS,CAACie,aAAjB,KAAmC,WAAvC,EAAoD;EAClD;EACD;;EAED,QAAMiD,MAAM,GAAGL,cAAc,IAAI,IAAlB,IAA0BC,eAAe,IAAI,IAA5D,CA7D4C;;EAgE5C,MAAI1+B,MAAM,CAACG,QAAP,CAAgB4+B,QAAhB,KAA6B,QAA7B,IAAyCjgC,QAAQ,CAACqB,QAAT,CAAkBC,QAAlB,KAA+B,WAAxE,IAAuF,CAAC0+B,MAA5F,EAAoG;EAClG,4DAAan4B,KAAb,CAAmB,oEAAnB;;EACA;EACD;EAED;EACJ;EACA;EACA;;;EACI,MAAI+zB,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,QAAI,6BAAC,IAAD,yDAAJ,EAAuC;EACrC,8DAAal0B,KAAb,CAAmB,wDAAnB;;EACA;EACD;EACF,GA9E2C;;;EAkF5C,MAAI,CAACm4B,MAAL,EAAa;EACX,UAAME,eAAe,IAAG,kBAAkBh/B,MAArB,CAArB;;EACA,QAAI,CAACg/B,eAAD,IAAoBhD,YAAY,IAAI,IAAxC,EAA8C;EAC5C,8DAAar1B,KAAb,CAAmB,sDAAnB;;EACA;EACD,KALU;;;EAOX,QAAIq1B,YAAY,CAACE,UAAb,KAA4B,SAA5B,KAA0C0C,yBAAyB,IAAIlE,QAAQ,EAArC,IAA2CG,SAAS,EAA9F,CAAJ,EAAuG;EACrG;EACA,WAAKO,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD,KAJD,MAIO,IAAI3C,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACA;EACD;;EAED,QAAI1C,UAAJ,EAAgB;EACd,WAAK4B,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD;EACF,GAtG2C;;;EAyG5C,MAAI,CAACV,SAAD,IAAc,CAACC,QAAf,IAA2B,CAACC,YAA5B,IAA4C,CAACC,gBAAjD,EAAmE;EACjE,4DAAaz3B,KAAb,CAAmB,wFAAnB;;EACA;EACD,GA5G2C;;;EA+G5C,MAAI03B,aAAa,IAAI,IAAjB,IAAyB,CAACA,aAAa,CAAC70B,KAAd,CAAoB,gBAApB,CAA9B,EAAqE;EACnE60B,IAAAA,aAAa,GAAG,SAAhB,CADmE;EAEpE,GAjH2C;;;EAoH5C,QAAMhd,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;;EACA,MAAKe,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAD,IAAiD,IAArD,EAA2D;EACzDkE,IAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD,GAFD,MAEO;EACL,QAAIid,qBAAqB,IAAI,IAA7B,EAAmC;EACjC;EACAA,MAAAA,qBAAqB,GAAG,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAtC;EACD;;EAED,UAAMW,aAAa,GAAGrhC,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAtB;;EACA,QAAI2nB,GAAG,GAAG4d,aAAN,GAAsBX,qBAA1B,EAAiD;EAC/C,UAAI,CAACxD,QAAQ,EAAb,EAAiB;EACf;EACD,OAH8C;;;EAK/C,UAAI8D,yBAAyB,IAAI,oEAAuB,IAAxD,EAA8D;EAC5D;EACD;EACF,KARD,MAQO;EACLhhC,MAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD;EACF;;EAED,MAAIyZ,QAAQ,kCAAM,IAAN,yDAAR,IAAkD,oEAAuB,IAA7E,EAAmF;EACjFl9B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACD;;EAED,MAAIqlC,MAAJ,EAAY;EACV;EACA,UAAMI,WAAW,GAAGpgC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAApB;EACAm1B,IAAAA,WAAW,CAAC5wB,YAAZ,CAAyB,OAAzB,EAAkC,eAAlC;EACA4wB,IAAAA,WAAW,CAAC5wB,YAAZ,CAAyB,KAAzB,EAAgCowB,eAAhC;EACA5/B,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BywB,WAA1B;EACAl/B,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C,UAAIA,KAAK,CAAC3vB,IAAN,IAAc,IAAlB,EAAwB;EACtB,YAAIzD,GAAG,GAAG,EAAV;;EACA,YAAI;EACFA,UAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAN;EACD,SAFD,CAEE,OAAOG,CAAP,EAAU;EACV;EACA;EACD;;EACD,YAAI5D,GAAG,CAACqiC,KAAJ,IAAa,IAAjB,EAAuB;EACrB,cAAIriC,GAAG,CAACwkC,IAAJ,KAAa,IAAb,IAAqBxkC,GAAG,CAACqiC,KAAJ,KAAc,KAAvC,EAA8C;EAC5C,gBAAIp/B,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,sEAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,YAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,gFAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,cAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C;EACAkG,cAAAA,MAAM,CAACo/B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCljB,gBAAAA,KAAK,EAAE8hB,SAD2B;EAElCjb,gBAAAA,IAAI,EAAEkb,QAF4B;EAGlCoB,gBAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,gBAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,gBAAAA,gBAAgB,EAAEA;EALgB,eAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,oBAAIA,OAAJ,EAAa;EACX;EACA,sBAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,oBAAAA,UAAU;EACX,mBAJU;;;EAMXv+B,kBAAAA,MAAM,CAAC6Z,IAAP,CAAY4kB,cAAZ;EACD,iBAPD,MAOO;EACL,sBAAI,OAAOD,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,oBAAAA,cAAc;EACf;EACF;;EACD;EACD,eApBD;EAqBD,aAvBD;EAwBD;EACF;EACF;EACF,KA5CD,EA4CG,KA5CH;EA6CD,GAnDD,MAmDO;EACL,QAAI5gC,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,8DAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,IAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,wEAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,MAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C,EADmC;;EAGnCkG,MAAAA,MAAM,CAACo/B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCljB,QAAAA,KAAK,EAAE8hB,SAD2B;EAElCjb,QAAAA,IAAI,EAAEkb,QAF4B;EAGlCoB,QAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,QAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,QAAAA,gBAAgB,EAAEA;EALgB,OAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,YAAIA,OAAJ,EAAa;EACX;EACA,cAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,YAAAA,UAAU;EACX;;EACD,eAAKnD,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACD,SAND,MAMO;EACL,cAAI,OAAOH,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,YAAAA,cAAc;EACf;EACF;;EACD;EACD,OAnBD;EAoBD,KAvBD;EAwBD;EACF;;EC3fI,MAAMgB,WAAW,GAAG,0pDAApB;EACA,MAAMC,kBAAkB,GAAG,s3CAA3B;;ECMP,IAAIC,YAAY,GAAG,IAAnB;EACA,IAAIxE,MAAM,GAAG,kBAAb;EACA,IAAIyE,mBAAmB,GAAG,IAA1B;EAEO,MAAMC,oBAAoB,GAAG,CAACC,aAAD,EAAgBnkC,MAAhB,EAAwBsJ,OAAxB,KAAoC;EACtE,QAAM86B,WAAW,GAAGliC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EAEA,QAAMumC,gBAAgB,GAAG,MAAM;EAC7B1/B,IAAAA,GAAG,CAACkD,UAAJ,GAAiBs8B,aAAjB;EACAjiC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzG,cAAhC,EAAgDqmC,aAAhD;EACD,GAHD;;EAKA,MAAIA,aAAa,CAACziB,SAAlB,EAA6B;EAC3B2iB,IAAAA,gBAAgB;EAChB5E,IAAAA,UAAU,CAACz/B,MAAD,EAAS,IAAT,EAAesJ,OAAf,CAAV;EACD,GAHD,MAGO,IAAI/G,IAAI,CAACC,SAAL,CAAe4hC,WAAf,MAAgC7hC,IAAI,CAACC,SAAL,CAAe2hC,aAAf,CAApC,EAAmE;EACxEE,IAAAA,gBAAgB;EACjB;EACF,CAdM;EAeA,MAAM5E,UAAU,GAAG,CAACz/B,MAAD,EAAS2R,OAAT,EAAkBrI,OAAlB,EAA2Bg7B,YAA3B,EAAyCxG,UAAzC,EAAqDyG,YAArD,KAAsE;EAC9F,QAAMH,WAAW,GAAGliC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EACA6G,EAAAA,GAAG,CAACkD,UAAJ,GAAiBu8B,WAAjB;;EACA,MAAI,CAACz/B,GAAG,CAACkD,UAAT,EAAqB;EACnB7H,IAAAA,MAAM,CAACiL,KAAP,CAAa,kCAAb;EACA;EACD;;EAED,MAAIq5B,YAAJ,EAAkB;EAAE9E,IAAAA,MAAM,GAAG8E,YAAT;EAAuB;;EAE3CL,EAAAA,mBAAmB,GAAG,IAAI5E,mBAAJ,CAAwB;EAAEr/B,IAAAA,MAAF;EAAUwJ,IAAAA,OAAO,EAAE,EAAnB;EAAuBF,IAAAA,OAAvB;EAAgCqI,IAAAA;EAAhC,GAAxB,CAAtB;;EAEA,MAAImsB,UAAJ,EAAgB;EACdmG,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD;;EAED,QAAM;EAAEgF,IAAAA,OAAF;EAAWC,IAAAA,OAAX;EAAoBC,IAAAA,YAApB;EAAkChjB,IAAAA;EAAlC,MAAgD/c,GAAG,CAACkD,UAA1D;;EAEA,MAAI6Z,SAAJ,EAAe;EACb,QAAI/c,GAAG,CAACkD,UAAJ,CAAe88B,SAAnB,EAA8BC,qBAAqB,CAACjgC,GAAG,CAACkD,UAAL,EAAiB08B,YAAjB,CAArB;EAC9B,QAAI5/B,GAAG,CAACkD,UAAJ,CAAeg9B,cAAnB,EAAmCC,cAAc,CAACngC,GAAG,CAACkD,UAAL,CAAd;EACpC,GAHD,MAGO;EACL,QAAI28B,OAAO,IAAIC,OAAO,KAAK,KAA3B,EAAkCG,qBAAqB,CAACjgC,GAAG,CAACkD,UAAL,EAAiB08B,YAAjB,CAArB;EAClC,QAAIG,YAAJ,EAAkBI,cAAc,CAACngC,GAAG,CAACkD,UAAL,CAAd;EACnB;EACF,CA3BM;;EA6BP,MAAMk9B,2BAA2B,GAAG,UAACC,GAAD,EAA0B;EAAA,MAApBC,UAAoB,uEAAP,EAAO;EAC5D,QAAMrU,OAAO,GAAGxtB,QAAQ,CAACiL,aAAT,CAAuB22B,GAAvB,CAAhB;EACAtmC,EAAAA,MAAM,CAAC2pB,OAAP,CAAe4c,UAAf,EAA2BtxB,OAA3B,CAAmC,UAAkB;EAAA,QAAjB,CAAC1T,GAAD,EAAML,KAAN,CAAiB;EACnDgxB,IAAAA,OAAO,CAAC3wB,GAAD,CAAP,GAAeL,KAAf;EACD,GAFD;EAGA,SAAOgxB,OAAP;EACD,CAND;;EAQO,MAAMgU,qBAAqB,GAAG,CAACM,UAAD,EAAaX,YAAb,KAA8B;EACjE,MAAInhC,QAAQ,CAACiV,cAAT,CAAwBla,0BAAxB,CAAJ,EAAyD;EAEzD,QAAM;EAAEwmC,IAAAA,SAAS,EAAE;EAAEQ,MAAAA,OAAF;EAAWlnB,MAAAA;EAAX;EAAb,MAAoCinB,UAA1C,CAHiE;;EAMjE,QAAM7lB,OAAO,GAAG0lB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAEwE;EAAN,GAAR,CAA3C;EACA,QAAMinC,UAAU,GAAGL,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA9C;EACA,QAAM0rC,MAAM,GAAGN,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA1C;EAEA,QAAM0mB,oBAAoB,GAAG0kB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAAxD;EACA,QAAM4mB,aAAa,GAAGwkB,2BAA2B,CAAC,KAAD,EAAQ;EACvDprC,IAAAA,EAAE,EAAE,eADmD;EAEvD43B,IAAAA,GAAG,EAAE4T,OAAO,CAACG,IAAR,CAAah4B,IAAb,KAAsB,SAAtB,uCAA+Dy2B,kBAA/D,IAAsFoB,OAAO,CAACG,IAAR,CAAa33B;EAFjD,GAAR,CAAjD;EAKA0S,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EAEA,QAAMC,gBAAgB,GAAGukB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EACA6mB,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BgyB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,OAAN;EAAe+9B,IAAAA,WAAW,EAAEyN,OAAO,CAAC1kB;EAApC,GAAR,CAAxD;EACAD,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BgyB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,aAAN;EAAqB+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACxkB;EAA1C,GAAR,CAAxD;EAEAN,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EAEA,QAAMK,gBAAgB,GAAGkkB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EAEA,QAAMklC,aAAa,GAAGkG,2BAA2B,CAAC,QAAD,EAAW;EAC1DprC,IAAAA,EAAE,EAAE,eADsD;EAE1D+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACvkB,OAAR,CAAgB2kB;EAF6B,GAAX,CAAjD;EAIA,QAAMzG,eAAe,GAAGiG,2BAA2B,CAAC,QAAD,EAAW;EAC5DprC,IAAAA,EAAE,EAAE,iBADwD;EAE5D+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACvkB,OAAR,CAAgB4kB;EAF+B,GAAX,CAAnD;EAIA3kB,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B+rB,eAA7B;EACAje,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B8rB,aAA7B;EAEAwG,EAAAA,MAAM,CAACtyB,WAAP,CAAmBsN,oBAAnB;EACAglB,EAAAA,MAAM,CAACtyB,WAAP,CAAmB8N,gBAAnB,EAtCiE;;EAyCjE,QAAM4W,YAAY,GAAGsN,2BAA2B,CAAC,OAAD,EAAU;EAAErN,IAAAA,WAAW,EAAEwG,kBAAkB,CAACjgB,KAAD;EAAjC,GAAV,CAAhD;EAEAoB,EAAAA,OAAO,CAACtM,WAAR,CAAoB0kB,YAApB;EACApY,EAAAA,OAAO,CAACtM,WAAR,CAAoBsyB,MAApB;EACAhmB,EAAAA,OAAO,CAACtM,WAAR,CAAoBqyB,UAApB;EAEAK,EAAAA,kBAAkB,CAACJ,MAAD,EAASpnB,KAAK,CAACmgB,IAAN,CAAW/K,QAApB,CAAlB;;EAEA,MAAI,CAAC6R,UAAU,CAACxjB,SAAhB,EAA2B;EACzB,QAAI,kBAAkBpd,MAAlB,IAA4Bg8B,YAAY,KAAK,IAAjD,EAAuD;EACrD,UAAIA,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCyD,QAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,QAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD,OAJD,MAIO,IAAIc,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACD;EACF;EACF;;EAED,QAAM7a,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;EACA,QAAMukC,aAAa,GAAGxjC,cAAc,CAACoD,WAAf,CAA2B,yBAA3B,CAAtB;EACA,QAAMqgC,cAAc,GAAGR,OAAO,CAACQ,cAAR,IAA0B,CAAjD,CA/DiE;;EAgEjE,QAAMC,sBAAsB,GAAG,CAACF,aAAD,IAAkB/f,GAAG,GAAG+f,aAAN,IAAuBC,cAAc,GAAG,EAAjB,GAAsB,EAAtB,GAA2B,EAAnG;;EAEA,MAAIC,sBAAJ,EAA4B;EAC1B,QAAI,CAACxG,QAAQ,EAAb,EAAiB;EACfh8B,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,UAAI,CAAC6lB,UAAU,CAACxjB,SAAhB,EAA2B;EACzBxf,QAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACAkgB,QAAAA,iBAAiB,CAACxmB,OAAD,CAAjB;EACD;EACF,KAND,MAMO;EACL,YAAMymB,4BAA4B,GAAI,iBAAiBxhC,MAAlB,IAA6B,CAACpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA9B,IAA0FwmC,YAAY,KAAK,IAAhJ;;EACA,UAAIuB,4BAAJ,EAAkC;EAChC1iC,QAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,YAAI,CAAC6lB,UAAU,CAACxjB,SAAhB,EAA2B;EACzBmkB,UAAAA,iBAAiB,CAACxmB,OAAD,CAAjB;EACAnd,UAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACD;EACF;EACF;EACF;EACF,CApFM;EAsFA,MAAMmf,cAAc,GAAII,UAAD,IAAgB;EAC5C,MAAI9hC,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,KAA2CioB,YAAY,CAACE,UAAb,KAA4B,SAA3E,EAAsF;EAEtF,QAAM;EAAEqE,IAAAA,cAAc,EAAE;EAAEM,MAAAA,OAAF;EAAWlnB,MAAAA;EAAX;EAAlB,MAAyCinB,UAA/C;EAEA,QAAMa,WAAW,GAAGhB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA/C;EACA,QAAMqsC,QAAQ,GAAGjB,2BAA2B,CAAC,KAAD,EAAQ;EAClDprC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE4T,OAAO,CAACG,IAAR,CAAah4B,IAAb,KAAsB,SAAtB,uCAA+Dw2B,WAA/D,IAA+EqB,OAAO,CAACG,IAAR,CAAa33B;EAF/C,GAAR,CAA5C,CAN4C;;EAY5C,QAAMs4B,QAAQ,GAAGlB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,WAAN;EAAmBskB,IAAAA,KAAK,EAAE;EAA1B,GAAR,CAA5C;EACA,QAAMioB,QAAQ,GAAGnB,2BAA2B,CAAC,KAAD,EAAQ;EAClDprC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE;EAF6C,GAAR,CAA5C;EAIA,QAAM4U,UAAU,GAAGpB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,aAAN;EAAqB4jB,IAAAA,SAAS,EAAE;EAAhC,GAAR,CAA9C;EAEA0oB,EAAAA,QAAQ,CAAClzB,WAAT,CAAqBmzB,QAArB;EACAD,EAAAA,QAAQ,CAAClzB,WAAT,CAAqBozB,UAArB;EAEAJ,EAAAA,WAAW,CAAChzB,WAAZ,CAAwBizB,QAAxB;EACAD,EAAAA,WAAW,CAAChzB,WAAZ,CAAwBkzB,QAAxB;;EACA,MAAId,OAAO,CAACiB,SAAR,CAAkBlG,OAAtB,EAA+B;EAC7B,UAAMmG,OAAO,GAAGtB,2BAA2B,CAAC,KAAD,EAAQ;EACjDprC,MAAAA,EAAE,EAAE,cAD6C;EAEjD+9B,MAAAA,WAAW,EAAEyN,OAAO,CAACiB,SAAR,CAAkBllB;EAFkB,KAAR,CAA3C;EAIA6kB,IAAAA,WAAW,CAAChzB,WAAZ,CAAwBszB,OAAxB;EACD;;EAEDZ,EAAAA,kBAAkB,CAACM,WAAD,EAAc9nB,KAAK,CAACmgB,IAAN,CAAW/K,QAAzB,CAAlB,CAhC4C;;EAkC5C,QAAMoE,YAAY,GAAGsN,2BAA2B,CAAC,OAAD,EAAU;EAAErN,IAAAA,WAAW,EAAEqH,iBAAiB,CAAC9gB,KAAD;EAAhC,GAAV,CAAhD;EAEA7a,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACAr0B,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BgzB,WAA1B;;EAEA,MAAI,CAACb,UAAU,CAACxjB,SAAhB,EAA2B;EACzB4kB,IAAAA,qBAAqB,CAACP,WAAD,CAArB;EACD;;EACD,SAAOA,WAAP;EACD,CA3CM;EA6CA,MAAMQ,YAAY,GAAIC,SAAD,IAAe;EACzCxC,EAAAA,YAAY,GAAGwC,SAAf;EACD,CAFM;EAIA,MAAMX,iBAAiB,GAAIxmB,OAAD,IAAa;EAC5C,QAAMwf,aAAa,GAAGxf,OAAO,CAAC8V,aAAR,CAAsB,gBAAtB,CAAtB;EACA,QAAM2J,eAAe,GAAGzf,OAAO,CAAC8V,aAAR,CAAsB,kBAAtB,CAAxB;;EAEA,QAAMsR,aAAa,GAAG;EAAA;;EAAA,kCAAMpnB,OAAO,CAAC3M,UAAd,wDAAM,oBAAoBC,WAApB,CAAgC0M,OAAhC,CAAN;EAAA,GAAtB;;EAEAwf,EAAAA,aAAa,CAAClhB,gBAAd,CAA+B,OAA/B,EAAwC,MAAM;EAC5C8oB,IAAAA,aAAa;EACbxC,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACD,GAJD;EAMAV,EAAAA,eAAe,CAACnhB,gBAAhB,CAAiC,OAAjC,EAA0C,MAAM;EAC9C8oB,IAAAA,aAAa;EACd,GAFD;EAGD,CAfM;EAiBA,MAAMH,qBAAqB,GAAIP,WAAD,IAAiB;EACpD,QAAMC,QAAQ,GAAGD,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA6Q,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,OAA1B,EAAmC,MAAM;EACvC,QAAI2iB,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EACxCkG,MAAAA,cAAc,CAACX,WAAD,CAAd;EACD,KAFD,MAEO;EACL9B,MAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,MAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;;EACA,UAAIc,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCuF,QAAAA,WAAW,CAACjjC,MAAZ;EACD;EACF;EACF,GAVD;EAWAkjC,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMgpB,cAAc,CAACZ,WAAD,CAA5D;EACAC,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMipB,YAAY,CAACb,WAAD,CAA1D;EACAA,EAAAA,WAAW,CAAC5Q,aAAZ,CAA0B,cAA1B,EAA0CxX,gBAA1C,CAA2D,OAA3D,EAAoE,MAAM+oB,cAAc,CAACX,WAAD,CAAxF;EACD,CAhBM;EAkBA,MAAMN,kBAAkB,GAAG,CAAC7U,OAAD,EAAUyC,QAAV,KAAuB;EACvD30B,EAAAA,MAAM,CAACmoC,MAAP,CAAcjW,OAAO,CAAC3S,KAAtB,EAA6B;EAC3B6oB,IAAAA,KAAK,EAAE,MADoB;EAE3BC,IAAAA,SAAS,EAAE;EAFgB,GAA7B;EAKA,QAAMC,SAAS,GAAG;EAChB,iBAAa;EAAEF,MAAAA,KAAK,EAAE;EAAT,KADG;EAEhB,gBAAY;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAFI;EAGhB,oBAAgB;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAHA;EAIhB,mBAAe;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAJC;EAKhBG,IAAAA,MAAM,EAAE;EAAEH,MAAAA,KAAK,EAAE,KAAT;EAAgBC,MAAAA,SAAS,EAAE;EAA3B,KALQ;EAMhBG,IAAAA,GAAG,EAAE;EAAEJ,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C,KANW;EAOhBI,IAAAA,MAAM,EAAE;EAAEL,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C;EAPQ,GAAlB;EAUAroC,EAAAA,MAAM,CAACmoC,MAAP,CAAcjW,OAAO,CAAC3S,KAAtB,EAA6B+oB,SAAS,CAAC3T,QAAD,CAAT,IAAuB2T,SAAS,CAAC,WAAD,CAA7D;EACD,CAjBM;;EAmBP,MAAML,cAAc,GAAIZ,WAAD,IAAiB;EACtC,QAAME,QAAQ,GAAGF,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;;EACA,MAAI8Q,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,KAA2B,MAA/B,EAAuC;EACrC;EACD;;EACD,QAAMgpB,OAAO,GAAGN,WAAW,CAAC5Q,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIkR,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACpoB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;;EAED,QAAM2oB,QAAQ,GAAGD,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA,QAAMiS,QAAQ,GAAGpB,QAAQ,CAACre,qBAAT,EAAjB;EACA,MAAI0f,IAAI,GAAG/iC,MAAM,CAACwqB,UAAP,GAAoB,CAA/B;EACA,MAAIwY,IAAI,GAAGhjC,MAAM,CAAC0qB,WAAP,GAAqB,CAAhC;EACA+W,EAAAA,WAAW,CAAC9nB,KAAZ,CAAkB,gBAAlB,IAAsCmpB,QAAQ,CAACrlC,CAAT,GAAaulC,IAAb,GAAoB,gBAApB,GAAuC,QAA7E;EACAvB,EAAAA,WAAW,CAAC9nB,KAAZ,CAAkB,aAAlB,IAAmCmpB,QAAQ,CAACjY,CAAT,GAAakY,IAAb,GAAoB,UAApB,GAAiC,YAApE;EACD,CAhBD;;EAkBA,MAAMT,YAAY,GAAIb,WAAD,IAAiB;EACpC,QAAMM,OAAO,GAAGN,WAAW,CAAC5Q,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIkR,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACpoB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;EACF,CALD;;EAOA,MAAMqpB,cAAc,GAAIX,WAAD,IAAiB;EACtCa,EAAAA,YAAY,CAACb,WAAD,CAAZ;EACA,QAAME,QAAQ,GAAGF,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA8Q,EAAAA,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,GAAyB4oB,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,KAA2B,MAA3B,GAAoC,MAApC,GAA6C,MAAtE;EACD,CAJD;;ECrPA,MAAMkqB,GAAG,GAAG,CAAC5nB,GAAD,WAKN;EAAA,MALY;EAChBpW,IAAAA,MADgB;EAEhBC,IAAAA,OAFgB;EAGhBF,IAAAA,OAHgB;EAIhBtJ,IAAAA;EAJgB,GAKZ;EACJ,QAAMu9B,OAAO,GAAGh0B,MAAhB;EACA,QAAMgT,QAAQ,GAAG/S,OAAjB;EACA,QAAM2zB,QAAQ,GAAG7zB,OAAjB;EACA,QAAMk+B,OAAO,GAAGxnC,MAAhB;EACA,MAAIynC,WAAW,GAAG,CAAlB,CALI;;EAOJ,QAAMC,kBAAkB,GAAI3T,gBAAD,IAAsB;EAC/C,UAAM5f,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMpD,KAAK,GAAGD,QAAQ,EAAtB;;EAEA,UAAMgnC,SAAS,GAAG,CAAC1oC,GAAD,EAAMkV,UAAN,EAAkByzB,mBAAlB,KAA0C;EAC1D,UAAIC,YAAY,GAAG,CAAnB;EACA,UAAIC,UAAU,GAAG,CAAjB;;EACA,UAAI7oC,GAAG,CAACkV,UAAD,CAAH,IAAmB,IAAvB,EAA6B;EAC3B0zB,QAAAA,YAAY,GAAG5oC,GAAG,CAACkV,UAAD,CAAlB;EACD;;EACD0zB,MAAAA,YAAY;;EACZ,UAAI5oC,GAAG,CAAC6V,EAAJ,IAAU,IAAd,EAAoB;EAClBgzB,QAAAA,UAAU,GAAG7oC,GAAG,CAAC6V,EAAjB;EACD,OATyD;;;EAW1D,UAAI8yB,mBAAmB,GAAG,CAA1B,EAA6B;EAC3BE,QAAAA,UAAU;EACX;;EAED7oC,MAAAA,GAAG,CAAC6V,EAAJ,GAASgzB,UAAT;EACA7oC,MAAAA,GAAG,CAACkV,UAAD,CAAH,GAAkB0zB,YAAlB;EACD,KAjBD;;EAmBA,QAAI3lC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,aAAO2lC,cAAc,CAAChtC,gBAAD,CAArB;EACA,UAAIitC,WAAW,GAAG,EAAlB;EACA,YAAM90B,OAAO,GAAGF,iBAAiB,EAAjC;;EACA,UAAI+gB,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,IAA+C/0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAAnD,EAAiF;EAC/E6oC,QAAAA,WAAW,GAAG90B,OAAO,CAACyB,EAAtB;EACD,OAFD,MAEO,IAAI,CAACof,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,IAA+ClU,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1F,KAAgG/0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAApG,EAAkI;EACvI6oC,QAAAA,WAAW,GAAG90B,OAAO,CAACC,EAAtB;EACD,OAFM,MAEA;EACL60B,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI90B,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC6oC,QAAAA,WAAW,CAAC70B,EAAZ,GAAiBD,OAAjB;EACD,OAb4C;;;EAe7C,UAAI6gB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,IAAiC,IAArC,EAA2C;EACzCnU,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,GAAgC,CAAhC;EACD,OAjB4C;;;EAoB7C,UAAInU,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,IAAkC,IAAtC,EAA4C;EAC1CpU,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,GAAiC,CAAjC;EACD;;EAED,UAAIP,mBAAmB,GAAG,CAAC,CAA3B,CAxB6C;;EAyB7C,UAAIQ,oBAAoB,GAAG,CAAC,CAA5B,CAzB6C;;EA0B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA1B6C;;EA2B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA3B6C;;EA4B7C,UAAIC,eAAe,GAAG,CAAC,CAAvB;EACA,UAAIC,iBAAiB,GAAG,CAAC,CAAzB,CA7B6C;;EA8B7C,UAAIC,sBAAsB,GAAG,CAAC,CAA9B,CA9B6C;;EAgC7C,UAAI1U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BgtC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3Cd,QAAAA,mBAAmB,GAAGxR,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BgtC,GAA3B,EAAgC,EAAhC,CAA9B;EACD;;EACD,UAAI3U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BitC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,oBAAoB,GAAGhS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BitC,GAA3B,EAAgC,EAAhC,CAA/B;EACD;;EACD,UAAI5U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BktC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,kBAAkB,GAAGjS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BktC,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI7U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CqzB,QAAAA,kBAAkB,GAAGlS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI8e,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CwzB,QAAAA,eAAe,GAAGnS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA3B,EAAgC,EAAhC,CAA1B;EACD;;EACD,UAAIgf,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CM,QAAAA,iBAAiB,GAAGpS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA3B,EAAgC,EAAhC,CAA5B;EACD;;EAED,UAAInU,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,IAAkC,IAAtC,EAA4C;EAAE;EAC5CM,QAAAA,sBAAsB,GAAGrS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA3B,EAAiC,EAAjC,CAAjC;EACD,OArD4C;;;EAuD7C,UAAIj+B,UAAU,GAAG89B,WAAW,CAACzrB,QAAQ,CAACe,SAAV,CAA5B;;EACA,UAAIpT,UAAJ,EAAgB;EACd,cAAM2+B,oBAAoB,GAAG3+B,UAAU,CAACiK,UAAD,CAAvC;EACA,cAAM20B,iBAAiB,GAAG5+B,UAAU,CAAC4K,EAArC,CAFc;;EAId,YAAI+zB,oBAAoB,KAAK,KAAzB,IAAkC,CAAClkC,GAAG,CAAC8C,kBAA3C,EAA+D;EAC7D,iBAAO,KAAP;EACD;;EAED,YAAIssB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BusC,YAA1B,KAA2C,CAA/C,EAAkD;EAChD;EACA,cAAIQ,sBAAsB,GAAG,CAAzB,IAA8BK,iBAAiB,IAAIL,sBAAnD,IAA6Eb,mBAAmB,GAAG,CAAvG,EAA0G;EACxG,mBAAO,KAAP;EACD;EACF,SALD,MAKO;EACL;EACA,cAAIY,iBAAiB,GAAG,CAApB,IAAyBM,iBAAiB,IAAIN,iBAA9C,IAAmEZ,mBAAmB,GAAG,CAA7F,EAAgG;EAC9F,mBAAO,KAAP;EACD;EACF,SAlBa;;;EAqBd,YAAIQ,oBAAoB,GAAG,CAAvB,IAA4BS,oBAAoB,IAAIT,oBAAxD,EAA8E;EAC5E,iBAAO,KAAP;EACD;EACF,OAxBD,MAwBO;EACLl+B,QAAAA,UAAU,GAAG,EAAb;EACA89B,QAAAA,WAAW,CAACzrB,QAAQ,CAACe,SAAV,CAAX,GAAkCpT,UAAlC;EACD,OAnF4C;;;EAsF7C,UAAI4J,QAAQ,GAAGk0B,WAAW,CAACpnC,KAAD,CAA1B;;EACA,UAAIkT,QAAQ,IAAI,IAAhB,EAAsB;EACpB,cAAMi1B,kBAAkB,GAAGj1B,QAAQ,CAACK,UAAD,CAAnC;EACA,cAAM60B,eAAe,GAAGl1B,QAAQ,CAACgB,EAAjC,CAFoB;;EAIpB,YAAIyzB,eAAe,GAAG,CAAlB,IAAuBS,eAAe,IAAIT,eAA1C,IAA6DX,mBAAmB,GAAG,CAAvF,EAA0F;EACxF,iBAAO,KAAP;EACD,SANmB;;;EAQpB,YAAIS,kBAAkB,GAAG,CAArB,IAA0BU,kBAAkB,IAAIV,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAXD,MAWO;EACLv0B,QAAAA,QAAQ,GAAG,EAAX;EACAk0B,QAAAA,WAAW,CAACpnC,KAAD,CAAX,GAAqBkT,QAArB;EACD;;EAED,UAAID,SAAS,GAAGm0B,WAAW,CAACvsC,MAAD,CAA3B;;EACA,UAAIoY,SAAS,IAAI,IAAjB,EAAuB;EACrB,cAAMo1B,kBAAkB,GAAGp1B,SAAS,CAACM,UAAD,CAApC,CADqB;;EAGrB,YAAIm0B,kBAAkB,GAAG,CAArB,IAA0BW,kBAAkB,IAAIX,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAND,MAMO;EACLz0B,QAAAA,SAAS,GAAG,EAAZ;EACAm0B,QAAAA,WAAW,CAACvsC,MAAD,CAAX,GAAsBoY,SAAtB;EACD;EACF,KAzI8C;;;EA2I/C,UAAMq1B,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC;;EACA,QAAI6rB,UAAU,CAACC,KAAX,IAAoB,IAApB,IAA4BD,UAAU,CAACC,KAAX,GAAmB,CAAnD,EAAsD;EACpD,YAAMA,KAAK,GAAGD,UAAU,CAACC,KAAzB;EACAD,MAAAA,UAAU,CAACC,KAAX,GAAmB,CAAnB;EACA/2B,MAAAA,UAAU,CAACm1B,GAAD,EAAM4B,KAAK,GAAG,IAAd,EAAoBxpB,GAApB,EAAyB;EACjCpW,QAAAA,MAAM,EAAEg0B,OADyB;EAEjC/zB,QAAAA,OAAO,EAAE+S,QAFwB;EAGjCjT,QAAAA,OAAO,EAAE6zB,QAHwB;EAIjCn9B,QAAAA,MAAM,EAAEwnC;EAJyB,OAAzB,CAAV;EAMA,aAAO,KAAP;EACD;;EAEDG,IAAAA,SAAS,CAACz9B,UAAD,EAAaiK,UAAb,EAAyByzB,mBAAzB,CAAT;EACAD,IAAAA,SAAS,CAAC7zB,QAAD,EAAWK,UAAX,EAAuByzB,mBAAvB,CAAT;EACAD,IAAAA,SAAS,CAAC9zB,SAAD,EAAYM,UAAZ,EAAwByzB,mBAAxB,CAAT;EAEA,QAAIwB,OAAO,GAAG,IAAd;;EACA,QAAIrV,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BusC,YAA1B,KAA2C,CAA/C,EAAkD;EAChDmB,MAAAA,OAAO,GAAG,IAAV;EACD,KA/J8C;;;EAiK/C,UAAMC,UAAU,GAAG,EAAnB;EACAA,IAAAA,UAAU,CAAC9sB,QAAQ,CAACe,SAAV,CAAV,GAAiCpT,UAAjC;EACAm/B,IAAAA,UAAU,CAACzoC,KAAD,CAAV,GAAoBkT,QAApB;EACAu1B,IAAAA,UAAU,CAAC5tC,MAAD,CAAV,GAAqBoY,SAArB;EACAT,IAAAA,kBAAkB,CAAC;EAAE,OAACg2B,OAAD,GAAWC;EAAb,KAAD,CAAlB;EACD,GAtKD;;EAwKA,QAAMC,aAAa,GAAG,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,KAA4D;EAChFJ,IAAAA,mBAAmB,CAACnJ,gBAAD,EAAmBoJ,QAAnB,CAAnB;EACAC,IAAAA,eAAe,CAACrE,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,EAAyDC,OAAzD,EAAkEhhB,QAAlE,CAAf;EACD,GAHD;;EAKA,QAAMgtB,oBAAoB,GAAIxV,gBAAD,IAAsB;EACjD,UAAM3b,KAAK,GAAG,kBAAd;;EACA,QAAIsvB,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EACD,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACAwY,MAAAA,OAAO,CAAC9tB,MAAR;EACD,KARgD;;;EAUjD,QAAIM,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAlC,IAA0ChV,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA1F,EAAgG;EAC9F;EACD;;EACD,UAAMmxB,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAYye,KAAZ;EACAhV,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;;EACA,QAAIjb,cAAc,CAAClmB,GAAf,CAAmB,wBAAnB,MAAiDxI,SAArD,EAAgE;EAC9D0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,wBAAtB,EAAgDpS,mBAAhD;EACD;;EACD,WAAO4hB,oBAAoB,CAACjK,gBAAD,EAAmBxX,QAAnB,CAA3B;EACD,GApBD;;EAsBA,QAAMktB,kBAAkB,GAAIt1B,UAAD,IAAgB;EACzC,UAAMu1B,UAAU,GAAGtmC,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgDjV,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,CAAnE;;EACA,QAAIqxB,UAAJ,EAAgB;EACd,YAAMC,cAAc,GAAGD,UAAU,CAACE,eAAX,IAA8BF,UAAU,CAACG,aAAX,CAAyBzmC,QAA9E;EACA,aAAOumC,cAAc,CAACvW,eAAf,CAA+B7V,SAA/B,CAAyClQ,QAAzC,CAAkD8G,UAAlD,CAAP;EACD;;EACD,WAAO,KAAP;EACD,GAPD;;EASA,QAAM21B,cAAc,GAAG,CAAC/V,gBAAD,EAAmBgW,YAAnB,KAAoC;EACzD,UAAM51B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMklC,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC;;EAEA,QAAI6rB,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7B,aAAOC,cAAc,CAACpqC,SAAD,EAAYk0B,gBAAZ,CAArB;EACD;;EACD,QAAImV,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7BT,MAAAA,oBAAoB,CAACxV,gBAAD,CAApB;EACA;EACD;;EAED,QAAI2T,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,UAAM3b,KAAK,GAAG,cAAc8wB,UAAU,CAACc,MAAvC;EACA,UAAME,YAAY,GAAG,qBAAqBhB,UAAU,CAACc,MAArD;;EAEA,QAAIrlC,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACA,YAAM+xB,cAAc,GAAG/mC,QAAQ,CAACiV,cAAT,CAAwB6xB,YAAxB,CAAvB;;EACA,UAAItZ,OAAJ,EAAa;EACXA,QAAAA,OAAO,CAAC9tB,MAAR;EACD;;EACD,UAAIqnC,cAAJ,EAAoB;EAClBA,QAAAA,cAAc,CAACrnC,MAAf;EACD;EACF;;EACD,QAAI2mC,kBAAkB,CAACt1B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI/Q,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAtC,EAA4C;EAC1C;EACD;;EAEDzT,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiCiE,KAAjC;EACA,UAAMgyB,QAAQ,GAAGlB,UAAU,CAACc,MAAX,KAAsB,CAAvC;;EACA,QAAID,YAAJ,EAAkB;EAChB,YAAMM,UAAU,GAAGjnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAg8B,MAAAA,UAAU,CAAC1wC,EAAX,GAAgBuwC,YAAhB;EACA,YAAMI,OAAO,GAAGvW,gBAAgB,CAAC1W,OAAjB,CAAyBitB,OAAzB,IAAoC,GAApD;EACA,YAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,MAAAA,UAAU,CAACz3B,YAAX,CAAwB,OAAxB,8GAAsI23B,SAAtI;EACAnnC,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bs3B,UAA1B;EACD;;EACD,UAAMb,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAYye,KAAZ;EACA,UAAMoyB,UAAU,GAAGlmC,MAAM,CAAC0qB,WAA1B;EACA,UAAMyb,SAAS,GAAGnmC,MAAM,CAACwqB,UAAzB;EACA,QAAI4b,MAAM,GAAG,KAAb;;EACA,QAAI,CAACN,QAAL,EAAe;EACb,YAAMO,YAAY,GAAGH,UAAU,GAAG,CAAb,GAAiB,GAAtC;EACA,UAAII,aAAa,GAAG,EAApB;EACA,UAAIljB,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAA5B;EACA,UAAII,cAAc,GAAGD,aAAa,GAAGD,YAArC;EACA,UAAIrsB,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAAnC;EACA,UAAIK,UAAU,GAAG,YAAjB,CANa;;EAQb,UAAI,CAAC,UAAUprC,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,KAAwC,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAAzC,KAAgF,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,MAAsC,KAA1H,EAAiI;EAC/H5gB,QAAAA,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACA/iB,QAAAA,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb,CAJ+H;EAMhI,OAND,MAMO,IAAI,kBAAkBxmC,MAAlB,IAA6B,UAAU5E,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAAjC,EAAuE;EAC5E5gB,QAAAA,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACA/iB,QAAAA,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb;EACD,OAnBY;;;EAqBb,UAAI5B,UAAU,CAAC6B,KAAX,IAAoB,IAAxB,EAA8B;EAC5BL,QAAAA,MAAM,GAAG,IAAT;EACAlB,QAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6B,2CAA2Ci4B,cAA3C,GAA4D,sBAA5D,GAAqFvsB,KAArF,GAA6F,sBAA7F,GAAsHoJ,KAAtH,GAA8H,kDAA3J;EACD,OAHD,MAGO;EACL8hB,QAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6Bk4B,UAAU,GAAG5B,UAAU,CAAC8B,WAArD;EACD;EACF,KA3BD,MA2BO;EACLxB,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6Bs2B,UAAU,CAAC8B,WAAxC;EACD;;EACD5nC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;EACA,UAAMyB,MAAM,GAAG7nC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EAEA,UAAMuwB,YAAY,GAAGsK,UAAU,CAACgC,EAAX,KAAkB,KAAlB,GAA0B,GAA1B,GAAgC,GAArD;EAEAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAACtxC,EAAP,GAAY,YAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIwS,UAAU,GAAG,EAAjB;;EACA,QAAIxS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCwS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIrC,UAAU,CAACxL,OAAX,IAAsBwL,UAAU,CAAC,eAAD,CAApC,EAAuD;EACrD+B,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EAED,QAAI7sB,IAAJ,CAnGyD;;EAqGzD,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,+DAHU,GAGwD6sB,UAHxD,GAGqE,GAHrE,GAIV,yCAJU,GAKV,+GALU,GAMV,8GANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,yBAZU,GAaV,qEAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAapkB,SAAb,EAAwBqkB,KAAxB,EAA+BC,MAA/B,EAAuCC,OAAvC;;EACA,UAAI7X,gBAAgB,CAAC1W,OAAjB,CAAyBwuB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAC,QAAAA,MAAM,GAAG,SAAT;EACAC,QAAAA,OAAO,GAAG,SAAV;EACD,OAND,MAMO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAskB,QAAAA,MAAM,GAAG,SAAT;EACAD,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGxO,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqrB,eAAe,GAAG/X,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAIorB,OAAO,GAAG,EAAd;;EACA,UAAIhY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6rB,QAAAA,OAAO,GAAG,+CAA+CJ,MAA/C,GAAwD,cAAxD,GAAyE5X,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAArG,GAAgH,gCAA1H;EACD;;EACD,YAAM8rB,UAAU,GAAG,iCAAiC73B,UAAjC,GAA8C,IAA9C,GAAqDiE,KAArD,GAA6D,KAAhF;EACA,YAAMqI,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EokB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,oDAHY;EAKZ,YALY,GAKHG,OALG,GAKO,kCALP,GAMZ,wCANY,GAM+B1kB,SAN/B,GAM2C,IAN3C,GAMkDkb,SANlD,GAM8D,QAN5E;EAOA,YAAMjb,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DykB,eAA7D,GAA+E,+BAA5F;EACAntB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EAED2jB,IAAAA,MAAM,CAACr4B,YAAP,CAAoB,OAApB,EAA6B,kHAA7B;EACA42B,IAAAA,MAAM,CAACz2B,WAAP,CAAmBk4B,MAAnB,EA3JyD;;EA8JzD,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9oC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsV,aAAvB;;EAEA,QAAI/C,UAAU,CAAC,eAAD,CAAd,EAAiC;EAC/BvqB,MAAAA,IAAI,GAAG+d,0BAA0B,CAAC3I,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDssB,IAAAA,MAAM,CAACkB,MAAP,GAAgBxtB,IAAhB;;EAEA,UAAMytB,kBAAkB,GAAG,MAAM;EAC/B;EACAxB,MAAAA,aAAa,GAAGxnC,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,EAAmFg0B,YAAnG;;EACA,UAAInD,UAAU,CAAC,eAAD,CAAV,KAAgC,IAAhC,IAAwC,CAACkB,QAA7C,EAAuD;EACrDQ,QAAAA,aAAa,IAAI,EAAjB;EACD;;EACDxnC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDtiB,IAAtD,CAA2DrJ,KAA3D,CAAiEquB,MAAjE,GAA0E,KAA1E;EACAlpC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC4F,KAAtC,CAA4CgB,MAA5C,GAAqD2rB,aAAa,GAAG,IAArE;EACD,KARD;;EAUA,UAAM3L,EAAE,GAAG/c,SAAS,CAACgd,SAAV,CAAoB7kB,WAApB,EAAX;;EACA,QAAI4kB,EAAE,CAAC76B,OAAH,CAAW,QAAX,MAAyB,CAAC,CAA9B,EAAiC;EAC/B,UAAI66B,EAAE,CAAC76B,OAAH,CAAW,QAAX,IAAuB,CAAC,CAA5B,EAA+B;EAC7B6mC,QAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpBwY,UAAAA,kBAAkB;EAClB,gBAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,UAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD,SAJD;EAKD,OAND,MAMO;EACL,YAAI6B,KAAK,GAAGtB,MAAM,CAACrB,eAAP,IAA0BqB,MAAM,CAACpB,aAA7C;EACA,YAAI0C,KAAK,CAACnpC,QAAV,EAAoBmpC,KAAK,GAAGA,KAAK,CAACnpC,QAAd,CAFf;;EAIL,cAAMopC,MAAM,GAAG7e,WAAW,CAAC,MAAM;EAC/B,cAAI4e,KAAK,CAACje,UAAN,KAAqB,UAAzB,EAAqC;EACnCV,YAAAA,aAAa,CAAC4e,MAAD,CAAb,CADmC;;EAGnCJ,YAAAA,kBAAkB;EAClB,kBAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,YAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD;EACF,SARyB,EAQvB,GARuB,CAA1B;EASD;EACF,KArBD,MAqBO;EACLO,MAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpB;EACAwY,QAAAA,kBAAkB;EAClB,cAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,QAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD,OALD;EAMD;EACF,GA9MD;;EA+MA,QAAM+B,wBAAwB,GAAI1Y,gBAAD,IAAsB;EACrD+V,IAAAA,cAAc,CAAC/V,gBAAD,EAAmB,KAAnB,CAAd;EACD,GAFD;;EAIA,MAAI2Y,eAAe,GAAG,KAAtB;;EAEA,QAAMC,sBAAsB,GAAI5Y,gBAAD,IAAsB;EACnD,QAAIgF,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAvC;EACA,UAAMmQ,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC,CAFmD;;EAKnD,QAAI/Y,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,sBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAAxB,KAAiD,WAD/C,IAEF,OAAOtoC,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAAxB,KAAiD,UAFnD,EAE+D;EAC7D,YAAMA,oBAAoB,GAAGtoC,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAA9C;;EAEA,UAAI,CAACF,eAAL,EAAsB;EACpB,cAAMpW,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,YAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD;;EAEDxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,GAA4C,MAAM;EAChD,cAAI0H,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,kBAAMyD,MAAM,GAAGzI,gBAAgB,CAAC1W,OAAjB,CAAyBmf,MAAxC;EACAzD,YAAAA,OAAO,IAAI4E,eAAe,CAACJ,OAAD,EAAUhhB,QAAV,CAA1B,CAFqC;;EAKrC,gBAAIigB,MAAM,IAAI,IAAd,EAAoB;EAClB;EACAprB,cAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACAwD,cAAAA,gBAAgB,CAACC,MAAD,EAASzI,gBAAT,CAAhB;EACA;EACD,aAVoC;;;EAYrC,gBAAIA,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;EACD,aAFD,MAEO;EACLz0B,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF,SAnBD;;EAoBAz0B,QAAAA,MAAM,CAAC+N,SAAP,CAAiBw6B,uBAAjB,GAA2C,MAAM;EAC/C3P,UAAAA,mBAAmB,CAACnJ,gBAAD,CAAnB;EACD,SAFD;;EAGA6Y,QAAAA,oBAAoB,CAACtW,MAAD,CAApB;EACAoW,QAAAA,eAAe,GAAG,IAAlB;EACD;EACF,KA1CD,MA0CO;EACLpoC,MAAAA,MAAM,CAAC+N,SAAP,CAAiBy6B,kBAAjB,GAAsC/Y,gBAAgB,CAAC9W,OAAvD;;EAEA,UAAIisB,UAAU,CAAC6D,eAAf,EAAgC;EAC9B,YAAI7D,UAAU,CAAC6D,eAAX,CAA2BC,QAA/B,EAAyC;EACvCC,UAAAA,mBAAmB,CAAClZ,gBAAD,CAAnB;EACD;;EACD,YAAImV,UAAU,CAAC6D,eAAX,CAA2BG,MAA/B,EAAuC;EACrCC,UAAAA,eAAe,CAACpZ,gBAAD,CAAf;EACD;;EACD,YAAImV,UAAU,CAAC6D,eAAX,CAA2BhD,YAA/B,EAA6C;EAC3CqD,UAAAA,aAAa,GAAGrZ,gBAAhB;EACAzvB,UAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB+lB,YAArB,GAAoCpD,cAApC;EACD,SAV6B;;;EAY9B,cAAMd,KAAK,GAAGD,UAAU,CAACC,KAAX,IAAoBD,UAAU,CAAC6D,eAAX,CAA2BO,eAA7D;;EACA,YAAInE,KAAK,IAAI,IAAT,IAAiBA,KAAK,GAAG,CAA7B,EAAgC;EAC9B/2B,UAAAA,UAAU,CAAC,MAAM;EACfq6B,YAAAA,wBAAwB,CAAC1Y,gBAAD,CAAxB;EACD,WAFS,EAEPoV,KAAK,GAAG,IAFD,CAAV;EAGD;EACF,OAlBD,MAkBO;EACLsD,QAAAA,wBAAwB,CAAC1Y,gBAAD,CAAxB;EACD;;EAED,UAAIzvB,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,gBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAxB,KAA2C,WADzC,IAEF,OAAOjpC,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAjB,CAAgCxZ,gBAAgB,CAAC9W,OAAjD,CAAP,KAAqE,UAFvE,EAEmF;EACjF,cAAMuwB,aAAa,GAAGlpC,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAjB,CAAgCxZ,gBAAgB,CAAC9W,OAAjD,CAAtB;EAEA,cAAMqZ,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EAEA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EAED,YAAIuX,OAAO,GAAG,EAAd;;EACA,aAAK,IAAI+Y,aAAT,IAA0B1Z,gBAA1B,EAA4C;EAC1C;EACA,cAAI0Z,aAAa,CAAC7oB,UAAd,CAAyBjoB,WAAzB,KAAyC8wC,aAAa,KAAK7wC,OAA/D,EAAwE;EACtE,kBAAM8wC,QAAQ,GAAG;EAAE,eAACD,aAAD,GAAiB1Z,gBAAgB,CAAC0Z,aAAD;EAAnC,aAAjB;EACA/Y,YAAAA,OAAO,CAACtsB,IAAR,CAAaslC,QAAb;EACD;EACF;;EAED,YAAIhZ,OAAO,CAACr0B,MAAR,GAAiB,CAArB,EAAwB;EACtBi2B,UAAAA,MAAM,CAAC5B,OAAP,GAAiBA,OAAjB;EACD;;EACD,YAAIX,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD,SAzBgF;;;EA4BjFxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBs7B,6BAAjB,GAAkDC,gBAAD,IAAsB;EACrE,cAAI,CAACA,gBAAD,IAAqB,CAACA,gBAAgB,CAAC5wB,KAA3C,EAAkD;EAAE;EAAQ;;EAE5D,gBAAMof,SAAS,GAAG,EAAlB;EACAA,UAAAA,SAAS,CAAC9uB,IAAV,GAAiB,OAAjB;EACA8uB,UAAAA,SAAS,CAACvvB,OAAV,GAAoB/P,oBAApB;EACAs/B,UAAAA,SAAS,CAAC5uB,OAAV,GAAoB;EAAE,aAAC5Q,OAAD,GAAWgxC,gBAAgB,CAAC5wB;EAA9B,WAApB;;EACA,cAAI+W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/Bif,YAAAA,SAAS,CAAC5uB,OAAV,GAAoB,EAAE,GAAG4uB,SAAS,CAAC5uB,OAAf;EAAwB2P,cAAAA,UAAU,EAAEywB,gBAAgB,CAAC1wB;EAArD,aAApB;EACD,WAToE;;;EAYrE,cAAI0wB,gBAAgB,CAAClZ,OAArB,EAA8B;EAC5B,iBAAK,IAAImZ,aAAT,IAA0BD,gBAAgB,CAAClZ,OAA3C,EAAoD;EAClD0H,cAAAA,SAAS,CAAC5uB,OAAV,GAAoB,EAAE,GAAG4uB,SAAS,CAAC5uB,OAAf;EAAwB,mBAAGqgC;EAA3B,eAApB;EACD;EACF;;EAED1Q,UAAAA,QAAQ,CAAC1vB,YAAT,CAAsB2uB,SAAtB;EACD,SAnBD;;EAoBAoR,QAAAA,aAAa,CAAClX,MAAD,CAAb;EACD;EACF;EACF,GA7HD;;EA+HA,QAAM2W,mBAAmB,GAAIa,WAAD,IAAiB;EAC3C,UAAMC,mBAAmB,GAAGD,WAAW,CAACzwB,OAAZ,CAAoB0vB,eAApB,CAAoCC,QAApC,GAA+C,IAA3E,CAD2C;;EAE3C,QAAIgB,SAAJ;EACA,UAAMC,MAAM,GAAG,CAAC,WAAD,EAAc,UAAd,EAA0B,QAA1B,EAAoC,WAApC,EAAiD,WAAjD,EAA8D,OAA9D,CAAf;;EACA,UAAMC,cAAc,GAAG,MAAM;EAC3BpT,MAAAA,YAAY,CAACkT,SAAD,CAAZ;EACAA,MAAAA,SAAS,GAAG57B,UAAU,CAAC,MAAM;EAC3Bq6B,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAK,QAAAA,oBAAoB;EACrB,OAHqB,EAGnBJ,mBAHmB,CAAtB;EAID,KAND;;EAOA,UAAMK,YAAY,GAAG,MAAM;EACzBF,MAAAA,cAAc;EACf,KAFD;;EAGA,UAAM7f,mBAAmB,GAAG,MAAM;EAChC4f,MAAAA,MAAM,CAACt6B,OAAP,CAAe06B,SAAS,IAAI/pC,MAAM,CAACqZ,gBAAP,CAAwB0wB,SAAxB,EAAmCD,YAAnC,EAAiD;EAAEE,QAAAA,OAAO,EAAE;EAAX,OAAjD,CAA5B;EACD,KAFD;;EAGA,UAAMH,oBAAoB,GAAG,MAAM;EACjCF,MAAAA,MAAM,CAACt6B,OAAP,CAAe06B,SAAS,IAAI/pC,MAAM,CAAC8hB,mBAAP,CAA2BioB,SAA3B,EAAsCD,YAAtC,CAA5B;EACD,KAFD;;EAGA/f,IAAAA,mBAAmB;EACnB6f,IAAAA,cAAc;EACd,WAAOC,oBAAP,CAtB2C;EAuB5C,GAvBD;;EAyBA,QAAMhB,eAAe,GAAIW,WAAD,IAAiB;EACvC,UAAMS,yBAAyB,GAAG,MAAM;EACtC,YAAM;EAAElC,QAAAA,YAAF;EAAgB5gB,QAAAA,YAAhB;EAA8BjC,QAAAA;EAA9B,UAA4CpmB,QAAQ,CAACgwB,eAA3D;EACA,aAAQ5J,SAAS,IAAI6iB,YAAY,GAAG5gB,YAAnB,CAAV,GAA8C,GAArD;EACD,KAHD;;EAIA,UAAM+iB,cAAc,GAAG,MAAM;EAC3B,YAAMC,gBAAgB,GAAGF,yBAAyB,EAAlD;;EACA,UAAIE,gBAAgB,IAAIX,WAAW,CAACzwB,OAAZ,CAAoB0vB,eAApB,CAAoCG,MAA5D,EAAoE;EAClET,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAxpC,QAAAA,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCsoB,uBAArC;EACD;EACF,KAND;;EAOA,UAAMC,QAAQ,GAAG,CAAClS,IAAD,EAAOmS,KAAP,KAAiB;EAChC,UAAIC,UAAU,GAAG,KAAjB;EACA,aAAO,YAAmB;EACxB,cAAMC,OAAO,GAAG,IAAhB;;EACA,YAAI,CAACD,UAAL,EAAiB;EAAA,4CAFCE,IAED;EAFCA,YAAAA,IAED;EAAA;;EACftS,UAAAA,IAAI,CAACuS,KAAL,CAAWF,OAAX,EAAoBC,IAApB;EACAF,UAAAA,UAAU,GAAG,IAAb;EACAz8B,UAAAA,UAAU,CAAC,MAAM;EACfy8B,YAAAA,UAAU,GAAG,KAAb;EACD,WAFS,EAEPD,KAFO,CAAV;EAGD;EACF,OATD;EAUD,KAZD;;EAaA,UAAMF,uBAAuB,GAAGC,QAAQ,CAACH,cAAD,EAAiB,GAAjB,CAAxC;EACAlqC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC+wB,uBAAlC,EAA2D;EAAEJ,MAAAA,OAAO,EAAE;EAAX,KAA3D;EACA,WAAO,MAAMhqC,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCsoB,uBAArC,CAAb,CA3BuC;EA4BxC,GA5BD;;EA8BA,MAAItB,aAAJ;;EACA,QAAMnD,cAAc,GAAG,CAAC5X,KAAD,EAAQ4c,SAAR,KAAsB;EAC3C,QAAI,CAAA5c,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAE6c,OAAP,IAAiB,CAArB,EAAwB;EACxB,UAAMnb,gBAAgB,GAAGkb,SAAS,IAAI7B,aAAtC;EAEA,UAAMj5B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMgmC,MAAM,GAAGjW,gBAAgB,CAAC1W,OAAjB,CAAyB2sB,MAAxC;EACA,QAAIP,kBAAkB,CAACt1B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI4f,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,KAAgD+B,MAAM,KAAK,CAAX,IAAgBA,MAAM,KAAK,CAA3B,IAAgCA,MAAM,KAAK,CAA3F,CAAJ,EAAmG;EACjGF,MAAAA,cAAc,CAAC/V,gBAAD,EAAmB,IAAnB,CAAd;EACA;EACD;;EACD,QAAI2T,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BssB,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAAxE,EAA2E;EACzE,YAAMkH,aAAa,GAAG/rC,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;EACA,YAAM+2B,gBAAgB,GAAGhsC,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,CAAzB;;EACA,UAAI82B,aAAa,IAAIC,gBAArB,EAAuC;EACrCD,QAAAA,aAAa,CAACrsC,MAAd;EACAssC,QAAAA,gBAAgB,CAACtsC,MAAjB;EACD;EACF,KAvB0C;;;EA0B3C,QAAIM,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA5C,IAAoDjV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAvG,EAA6G;EAC3G;EACD,KA5B0C;;;EA8B3C,QAAI0b,gBAAgB,CAAC1W,OAAjB,CAAyB2sB,MAAzB,IAAmC,IAAnC,KACA,UAAUtqC,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAAD,IAA0C,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAA1C,IAAiF,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAAjF,IACE,kBAAkB56B,MADpB,IACgC,UAAU5E,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAF/B,CAAJ,EAE0E;EACxE;EACD;;EAEDv6B,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiC,eAAjC;EACA,QAAIu2B,MAAM,GAAG,KAAb;EACA,UAAML,UAAU,GAAGjnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAg8B,IAAAA,UAAU,CAAC1wC,EAAX,GAAgB,kBAAhB;EACA,UAAM2wC,OAAO,GAAGvW,gBAAgB,CAAC1W,OAAjB,CAAyBitB,OAAzB,IAAoC,GAApD;EACA,UAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,IAAAA,UAAU,CAACz3B,YAAX,CAAwB,OAAxB,8GAAsI23B,SAAtI;EACAnnC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bs3B,UAA1B;EAEA,UAAMb,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAY,eAAZ;;EAEA,QAAIo6B,gBAAgB,CAAC1W,OAAjB,CAAyB0tB,KAAzB,IAAkC,IAAtC,EAA4C;EAC1CL,MAAAA,MAAM,GAAG,IAAT;EACAlB,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6B,4LAA7B;EACD,KAHD,MAGO;EACL42B,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6BmhB,gBAAgB,CAAC1W,OAAjB,CAAyB2tB,WAAtD;EACD;;EACD5nC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;EACA,UAAMyB,MAAM,GAAG7nC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EACA,UAAMuwB,YAAY,GAAG7K,gBAAgB,CAAC1W,OAAjB,CAAyB6tB,EAAzB,KAAgC,KAAhC,GAAwC,GAAxC,GAA8C,GAAnE;EACAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAACtxC,EAAP,GAAY,mBAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIwS,UAAU,GAAG,EAAjB;;EACA,QAAIxS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCwS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIxX,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAAzB,IAAoC3J,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAxC,EAAmF;EACjF4tB,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EACD,QAAI7sB,IAAJ,CAtE2C;;EAwE3C,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,wEAHU,GAGiE6sB,UAHjE,GAG8E,GAH9E,GAIV,yCAJU,GAKV,4GALU,GAMV,wJANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,wCAZU,GAaV,qRAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAapkB,SAAb,EAAwBqkB,KAAxB,EAA+BE,OAA/B;;EACA,UAAI7X,gBAAgB,CAAC1W,OAAjB,CAAyBwuB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD,OALD,MAKO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGxO,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqrB,eAAe,GAAG/X,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAI0uB,OAAO,GAAG,EAAd;;EACA,UAAItb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAA5B,IAAuC,IAAvC,IAA+Ctb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAA5B,KAAwC,EAA3F,EAA+F;EAC7FA,QAAAA,OAAO,GAAG,qCAAqCtb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAAjE,GAA2E,YAArF;EACD;;EAED,UAAItD,OAAO,GAAG,EAAd;;EACA,UAAIhY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6rB,QAAAA,OAAO,GAAG,8CAA8ChY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA1E,GAAqF,oBAArF,GAA4GqiB,SAA5G,GAAwH,WAAlI;EACD;;EACD,YAAMyJ,UAAU,GAAG,iCAAiC73B,UAAjC,GAA8C,oBAAjE;EACA,YAAMsM,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EokB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,wCAHY,GAG+BvkB,SAH/B,GAG2C,IAH3C,GAGkDkb,SAHlD,GAG8D,QAH5E;EAIA,YAAMjb,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DykB,eAA7D,GAA+E,QAA/E,GAA0FC,OAA1F,GAAoGsD,OAApG,GACX,cADF;EAEA1wB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EACD2jB,IAAAA,MAAM,CAACr4B,YAAP,CAAoB,OAApB,EAA6B,yLAA7B;EACA42B,IAAAA,MAAM,CAACz2B,WAAP,CAAmBk4B,MAAnB,EA9H2C;;EAiI3C,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9oC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsV,aAAvB;;EAEA,QAAIlY,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAJ,EAA+C;EAC7CsB,MAAAA,IAAI,GAAG+d,0BAA0B,CAAC3I,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDssB,IAAAA,MAAM,CAACkB,MAAP,GAAgBxtB,IAAhB;;EAEAssB,IAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpB,YAAMyJ,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CuxB,eAA7C,CAA6DvxB,cAA7D,CAA4E,YAA5E,CAAnB;EACAixB,MAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwC,eAAxC,EAAyDqN,MAAzD,CAAb;EACD,KAHD;EAID,GA7ID;;EA+IA,MAAI,CAACtnC,QAAQ,CAACkkB,IAAd,EAAoB;EAClB,QAAImgB,WAAW,GAAG,CAAlB,EAAqB;EACnBA,MAAAA,WAAW;EACXr1B,MAAAA,UAAU,CAACm1B,GAAD,EAAM,IAAN,EAAY5nB,GAAZ,EAAiB;EACzBpW,QAAAA,MAAM,EAAEg0B,OADiB;EAEzB/zB,QAAAA,OAAO,EAAE+S,QAFgB;EAGzBjT,QAAAA,OAAO,EAAE6zB,QAHgB;EAIzBn9B,QAAAA,MAAM,EAAEwnC;EAJiB,OAAjB,CAAV;EAMD;;EACD;EACD;;EACD,QAAM8H,uBAAuB,GAAIC,cAAD,IAAoB;EAClD7wC,IAAAA,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BxlB,GAA5B,CAAgC9pB,GAAG,IAAI;EACrC,UAAIuvC,SAAJ,EAAe71C,EAAf;;EACA,UAAI41C,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAhC,EAAuC;EACrCo3B,QAAAA,SAAS,GAAGD,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAxC;EACAze,QAAAA,EAAE,GAAGyJ,QAAQ,CAACiV,cAAT,CAAwBm3B,SAAxB,CAAL;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,GAAGD,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4Boe,WAAxC;EACA9hC,QAAAA,EAAE,GAAGyJ,QAAQ,CAAC+xB,aAAT,CAAuBqa,SAAvB,CAAL;EACD;;EACD,UAAI71C,EAAE,KAAK,IAAX,EAAiB;EACf41C,QAAAA,cAAc,CAACtvC,GAAD,CAAd,CAAoBwe,UAApB,CAA+BnR,IAA/B,KAAwC,CAAxC,GAA4CkuB,2BAA2B,CAAC+T,cAAc,CAACtvC,GAAD,CAAf,CAAvE,GAA+F27B,6BAA6B,CAAC2T,cAAc,CAACtvC,GAAD,CAAf,CAA5H;EACA,eAAOsvC,cAAc,CAACtvC,GAAD,CAArB;EACD;EACF,KAbD;EAcD,GAfD;;EAiBA,QAAMwvC,eAAe,GAAIF,cAAD,IAAoB;EAC1CjrC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgC,MAAM;EACpC,UAAIzQ,KAAK,GAAG,CAAZ;;EACA,UAAIA,KAAK,GAAG,EAAZ,EAAgB;EACd,cAAMxC,CAAC,GAAGijB,WAAW,CAAC,MAAM;EAC1B2hB,UAAAA,uBAAuB,CAACC,cAAD,CAAvB;;EACA,cAAI7wC,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BlvC,MAA5B,KAAuC,CAAvC,IAA4C6M,KAAK,KAAK,EAA1D,EAA8D;EAC5D0gB,YAAAA,aAAa,CAACljB,CAAD,CAAb;EACA6kC,YAAAA,cAAc,GAAG,EAAjB;EACD;;EACDriC,UAAAA,KAAK;EACN,SAPoB,EAOlB,GAPkB,CAArB;EAQD;EACF,KAZD;EAaD,GAdD;;EAgBA,MAAIyS,GAAG,CAAC0c,YAAJ,IAAoB,IAAxB,EAA8B;EAC5B,UAAMkT,cAAc,GAAG,EAAvB;;EACA,SAAK,IAAI5mC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAAC0c,YAAJ,CAAiBh8B,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAMmlC,WAAW,GAAGnuB,GAAG,CAAC0c,YAAJ,CAAiB1zB,KAAjB,CAApB;;EACA,UAAImlC,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,IAAoC,IAApC,IAA4C6F,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAArF,EAAwF;EACtF0E,QAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD,OAFD,MAEO,IAAIA,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnDmF,QAAAA,aAAa,GAAGU,WAAhB;EACAxpC,QAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB+lB,YAArB,GAAoCpD,cAApC;EACD,OAHM,MAGA,IAAI6D,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnD,YAAI6F,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EACrCuuB,UAAAA,oBAAoB,CAACiS,WAAD,CAApB;EACD,SAFD,MAEO,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,IAAqCwgC,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAzE,EAA4E;EAAE;EACnF,gBAAMsjB,OAAO,GAAGkd,WAAW,CAACzwB,OAAZ,CAAoBjF,KAApB,GAA4BhV,QAAQ,CAACiV,cAAT,CAAwBy1B,WAAW,CAACzwB,OAAZ,CAAoBjF,KAA5C,CAA5B,GAAiFhV,QAAQ,CAAC+xB,aAAT,CAAuB2Y,WAAW,CAACzwB,OAAZ,CAAoBoe,WAA3C,CAAjG;;EACA,cAAI7K,OAAO,KAAK,IAAhB,EAAsB;EACpBkd,YAAAA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,GAAoCkuB,2BAA2B,CAACsS,WAAD,CAA/D,GAA+ElS,6BAA6B,CAACkS,WAAD,CAA5G;EACD,WAFD,MAEO;EACLyB,YAAAA,cAAc,CAACzB,WAAW,CAAC7wB,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAD,CAAd,GAAoD8pC,WAApD,CADK;EAEN;EACF,SAPM,MAOA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CylB,UAAAA,mBAAmB,CAAC+a,WAAD,EAAc,KAAd,CAAnB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CwuB,UAAAA,gBAAgB,CAACgS,WAAD,CAAhB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5C2uB,UAAAA,UAAU,CAAC6R,WAAD,CAAV;EACD,SAFM,MAEA;EACLnB,UAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD;EACF;EACF,KA7B2B;;;EA+B5B,QAAIpvC,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BlvC,MAAhC,EAAwC;EACtC,UAAI+C,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCghB,QAAAA,uBAAuB,CAACC,cAAD,CAAvB;EACD,OAFD,MAEO;EACLE,QAAAA,eAAe,CAACF,cAAD,CAAf;EACD;EACF;EACF;;EAED,QAAMG,wBAAwB,GAAG,MAAM;EACrC,QAAI/vB,GAAG,CAAC+M,aAAR,EAAuB;EACrBD,MAAAA,kBAAkB,CAAC9M,GAAD,CAAlB;EACA;EACD;;EACD,QAAIA,GAAG,CAACgN,YAAR,EAAsB;EACpB,YAAMgjB,MAAM,GAAG,EAAf;;EACA,WAAK,IAAIhnC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAACgN,YAAJ,CAAiBtsB,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAI++B,kBAAkB,CAAC/nB,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAD,CAAlB,KAAgD,KAApD,EAA2D;EACzDgnC,UAAAA,MAAM,CAACvnC,IAAP,CAAYuX,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAZ;EACD;EACF;;EACD8jB,MAAAA,kBAAkB,CAACkjB,MAAD,CAAlB;EACD;EACF,GAdD;;EAgBA,MAAIhwB,GAAG,CAAC4M,eAAJ,IAAuB5M,GAAG,CAACgN,YAAJ,IAAoB,IAA/C,EAAqD;EACnD;EACJ;EACA;EACA;EACA;EAEI,QAAIyD,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EACjC;;EACD,QAAIloB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBsY,MAAAA,GAAG,CAAC4M,eAAJ,IAAuBD,uBAAuB,CAAC3M,GAAG,CAAC4M,eAAL,CAA9C;EACAU,MAAAA,kBAAkB,CAACua,OAAD,CAAlB,CACGrZ,IADH,CACQ,MAAM;EACVuhB,QAAAA,wBAAwB;EACzB,OAHH,EAIGthB,KAJH,CAISvrB,CAAC,IAAI,EAJd;EAKD,KAPD,MAOO;EACL6sC,MAAAA,wBAAwB;EACzB;EACF;;EAED,MAAI/vB,GAAG,CAACwkB,aAAR,EAAuB;EACrBD,IAAAA,oBAAoB,CAACvkB,GAAG,CAACwkB,aAAL,EAAoBnkC,MAApB,EAA4BsJ,OAA5B,CAApB;EACD;;EAED,MAAIqW,GAAG,CAACiwB,IAAR,EAAc;EACZjrC,IAAAA,GAAG,CAACiD,aAAJ,CAAkBioC,cAAlB,CAAiClwB,GAAG,CAACiwB,IAArC;EACA;EACD;;EAED,MAAI1tC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI;EACF,UAAIud,GAAG,CAACmwB,IAAJ,IAAY,IAAhB,EAAsB;EACpB,cAAMC,SAAS,GAAGpwB,GAAG,CAACmwB,IAAJ,CAAS7B,MAA3B;EACA,cAAM+B,UAAU,GAAGrwB,GAAG,CAACmwB,IAAJ,CAASj2B,OAA5B;EACA,cAAMo2B,UAAU,GAAGtwB,GAAG,CAACmwB,IAAJ,CAASI,UAA5B;EACA,cAAMvqB,GAAG,GAAG3kB,MAAM,EAAlB;EACAkB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,QAA3B,EAAqCmgB,GAArC;EACAzjB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,MAA3B,EAAmCyqC,UAAnC;EACAnT,QAAAA,aAAa,CAACiT,SAAD,CAAb;EACA7tC,QAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;;EACA,YAAI/B,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChCqR,UAAAA,oBAAoB,CAACk4B,UAAD,EAAa,IAAb,CAApB;EACD,SAFD,MAEO;EACLl4B,UAAAA,oBAAoB,CAACk4B,UAAD,EAAa,KAAb,CAApB;EACD;EACF;;EACD,UAAIrwB,GAAG,CAACrH,GAAJ,IAAW,IAAf,EAAqB;EACnBA,QAAAA,GAAG,CAACqH,GAAG,CAACrH,GAAL,CAAH;EACD;;EACD,UAAIqH,GAAG,CAACwwB,WAAJ,IAAmB,IAAnB,IAA2BxwB,GAAG,CAACwwB,WAAJ,CAAgB9vC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACAs8B,QAAAA,eAAe,CAAChd,GAAG,CAACwwB,WAAL,EAAkB,IAAlB,CAAf;EACD;;EACD,UAAIxwB,GAAG,CAACywB,WAAJ,IAAmB,IAAnB,IAA2BzwB,GAAG,CAACywB,WAAJ,CAAgB/vC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACAs8B,QAAAA,eAAe,CAAChd,GAAG,CAACywB,WAAL,EAAkB,IAAlB,CAAf;EACD;EACF,KA3BD,CA2BE,OAAOvtC,CAAP,EAAU;EACV2kC,MAAAA,OAAO,CAACv8B,KAAR,CAAc,iCAAiCpI,CAA/C;EACD;EACF;EACF,CAv5BD;;;;EC7Be,MAAMwtC,IAAN,CAAW;EAGxB32C,EAAAA,WAAW,OAER;EAAA,QAFU;EACX+S,MAAAA;EADW,KAEV;EAAA;EAAA;EAAA;EAAA;EACD,gGAAgCA,uBAAhC;EACD;;EAED6jC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAIC,UAAU,GAAGruC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;;EACA,QAAIirC,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,GAAG,CAAb;EACD;;EACD,WAAOA,UAAP;EACD;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,UAAMC,WAAW,GAAGvuC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAApB;;EACA,QAAImrC,WAAW,IAAI,IAAnB,EAAyB;EACvB,aAAO,IAAI1xC,IAAJ,CAAS0xC,WAAW,GAAG,IAAvB,CAAP;EACD;EACF;;EA5BuB;;ECCnB,MAAMC,SAAS,GAAG;EACvBC,EAAAA,OAAO,EAAE,CADc;EAEvBC,EAAAA,KAAK,EAAE,CAFgB;EAGvBC,EAAAA,IAAI,EAAE,CAHiB;EAIvBC,EAAAA,KAAK,EAAE,CAJgB;EAKvBC,EAAAA,QAAQ,EAAE;EALa,CAAlB;;;;;;;;EAQA,MAAMC,MAAN,CAAa;EAGlBt3C,EAAAA,WAAW,CAAEu3C,QAAF,EAAY;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SADvBC,SACuB,GADX,EACW;EACrB,8DAAiBD,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BP,SAAS,CAACG,IAAzD;EACA,SAAKK,SAAL,GAAiB,EAAjB;EACD;;EAED,MAAID,QAAJ,GAAgB;EACd,uCAAO,IAAP;EACD;;EAED,MAAIA,QAAJ,CAAcA,QAAd,EAAwB;EACtB,8DAAiBA,QAAjB;EACD;;EAEDhmC,EAAAA,KAAK,CAAEmU,OAAF,EAAW;EACd,QAAI,2DAAkBsxB,SAAS,CAACE,KAAhC,EAAuC;EACrC,oDAAU,OAAV,EAAmBxxB,OAAnB;EACD;EACF;;EAEDuhB,EAAAA,IAAI,CAAEvhB,OAAF,EAAW;EACb,QAAI,2DAAkBsxB,SAAS,CAACG,IAAhC,EAAsC;EACpC,oDAAU,KAAV,EAAiBzxB,OAAjB;EACD;EACF;;EAEDlZ,EAAAA,KAAK,CAAEkZ,OAAF,EAAW;EACd,QAAI,2DAAkBsxB,SAAS,CAACI,KAA5B,gCAAqC,IAArC,iCAAJ,EAA8D;EAC5D,oDAAU,OAAV,EAAmB1xB,OAAnB;EACD;EACF;;EAED+xB,EAAAA,OAAO,CAAE/xB,OAAF,EAAW;EAChB,QAAI,2DAAkBsxB,SAAS,CAACK,QAAhC,EAA0C;EACxC,oDAAU,UAAV,EAAsB3xB,OAAtB;EACD;EACF;;EAED7e,EAAAA,WAAW,CAAE6wC,IAAF,EAAQzwB,WAAR,EAAqB;EAC9B,SAAKuwB,SAAL,CAAehtC,CAAf,GAAmBktC,IAAnB;EACA,SAAKF,SAAL,CAAervC,CAAf,GAAmB8e,WAAnB;EACA,SAAK1V,KAAL,WAAcE,sBAAd,cAAwCimC,IAAxC,eAAiDzwB,WAAjD;EACD;;EA5CiB;;6BA8CZ0wB,OAAOjyB,SAAS;EACpB,MAAI9a,MAAM,CAAC8P,OAAX,EAAoB;EAClB,QAAI;EACF,YAAMyX,EAAE,GAAG,IAAI9sB,IAAJ,GAAWoC,OAAX,EAAX;EACAiT,MAAAA,OAAO,CAACi9B,KAAD,CAAP,sBAA6BxlB,EAA7B,gBAAqCzM,OAArC;EACD,KAHD,CAGE,OAAOvc,CAAP,EAAU;EACb;EACF;;uCAEqB;EACpB,SAAQ,OAAOklC,cAAP,KAA0B,WAA1B,IAAyCA,cAAc,CAACuJ,MAAf,KAA0B,EAA3E;EACD;;;;;;;;EC/DY,MAAMC,cAAN,CAAqB;EAIvB;EAGX73C,EAAAA,WAAW,OAGR;EAAA,QAHU;EACXsG,MAAAA,MADW;EAEXyM,MAAAA;EAFW,KAGV;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SANHuP,UAMG;EAAA,SALH+hB,UAKG;EACD,SAAKzgB,SAAL,GAAiBpb,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;EACA,8DAAetF,MAAf;EACA,gGAAgCyM,uBAAhC;EACD;;EAED,MAAI6Q,SAAJ,GAAiB;EACf,uCAAO,IAAP;EACD;;EAED,MAAIA,SAAJ,CAAeA,SAAf,EAA0B;EACxB,gEAAkBA,SAAlB;EACD;;EAEDnT,EAAAA,sBAAsB,GAAI;EACxB,QAAIqnC,UAAU,GAAGtvC,cAAc,CAAC2B,UAAf,CAA0B,KAAKmY,UAA/B,CAAjB;EACA,QAAI/c,GAAG,GAAG,EAAV;;EAEA,QAAIuyC,UAAU,IAAI,IAAlB,EAAwB;EACtB;EACAA,MAAAA,UAAU,GAAGA,UAAU,CAAC9wC,OAAX,CAAmBjG,gBAAnB,EAAqC,GAArC,CAAb;EAEAwE,MAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAW4uC,UAAX,CAAN;;EACA,UAAI,CAAC/yC,QAAQ,CAACQ,GAAD,CAAb,EAAoB;EAClBA,QAAAA,GAAG,GAAG,EAAN;EACD,OAFD,MAEO;EACL,YAAI,OAAOA,GAAG,CAACyL,CAAX,KAAiB,WAArB,EAAkC;EAAE;EAClC,gBAAMuC,QAAQ,GAAGhO,GAAG,CAACyL,CAArB;EACA,gBAAMib,GAAG,GAAG3kB,MAAM,EAAlB;;EACA,cAAK2kB,GAAG,GAAG1Y,QAAP,GAAoB/R,wBAAwB,GAAG,EAAnD,EAAwD;EACtD;EACA;EACA;EACA+D,YAAAA,GAAG,GAAG,EAAN;EACD;EACF;EACF;EACF;;EACD,SAAK8+B,UAAL,GAAkB9+B,GAAlB;EACA,WAAOA,GAAP;EACD;;EAED0L,EAAAA,sBAAsB,CAAE1L,GAAF,EAAO;EAC3B,UAAMwyC,MAAM,GAAGlvC,IAAI,CAACC,SAAL,CAAevD,GAAf,CAAf;EACAiD,IAAAA,cAAc,CAAC8C,iBAAf,CAAiC,KAAKgX,UAAtC,EAAkDy1B,MAAlD,EAA0Dv2C,wBAA1D,EAAoFuT,WAAW,EAA/F;EACD;;EAEDhE,EAAAA,aAAa,CAAEjB,OAAF,EAAW;EACtB;EACA;EACA,QAAI,OAAO,KAAK8T,SAAZ,KAA0B,WAA1B,IAAyC,KAAKA,SAAL,KAAmB9T,OAAhE,EAAyE;EACvE,YAAMkoC,kBAAkB,GAAGxvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAA3B,CADuE;;EAGvE,UAAI,OAAOosC,kBAAP,KAA8B,WAAlC,EAA+C;EAC7CxvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC,CAAjC;EACD,OAJD,MAIO,IAAIksC,kBAAkB,KAAKloC,OAA3B,EAAoC;EACzC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCksC,kBAAjC;EACAxvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACA,YAAImoC,YAAY,GAAGzvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAnB;;EACA,YAAI,OAAOqsC,YAAP,KAAwB,WAA5B,EAAyC;EACvCA,UAAAA,YAAY,GAAG,CAAf;EACD;;EACDzvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCmsC,YAAY,GAAG,CAAhD;EACD;;EACD,WAAKr0B,SAAL,GAAiB9T,OAAjB;EACD;EACF;;EAEDooC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,KAAK7T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK5zB,sBAAL,EAAlB;EACD;;EACD,UAAM0nC,YAAY,GAAG,KAAK9T,UAAL,CAAgBt0B,CAArC;;EACA,QAAIooC,YAAY,IAAI,IAApB,EAA0B;EACxB,YAAMhmB,EAAE,GAAG7qB,MAAM,EAAjB;EACA,aAAOC,IAAI,CAACC,KAAL,CAAW2qB,EAAE,GAAGgmB,YAAhB,CAAP;EACD;EACF;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EAED,QAAI,KAAK/T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK5zB,sBAAL,EAAlB;EACD;;EACD,WAAO,KAAK4zB,UAAL,CAAgB5kB,CAAvB;EACD;;EAxGiC;;ECGpC,IAAI44B,KAAK,GAAG,CAAZ;EACA,IAAIC,WAAW,GAAG,CAAlB;;;;;;;;;;;;;;;;EAEe,MAAMC,cAAN,CAAqB;EASlCv4C,EAAAA,WAAW,OAAiE;EAAA,QAA/D;EAAEsG,MAAAA,MAAF;EAAU2R,MAAAA,OAAV;EAAmBpI,MAAAA,MAAnB;EAA2BC,MAAAA,OAA3B;EAAoCiD,MAAAA;EAApC,KAA+D;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAH7D;EAG6D;EAAA,SAF5E7B,gBAE4E,GAFzD,KAEyD;EAC1E,8DAAe5K,MAAf;EACA,gEAAgB2R,OAAhB;EACA,8DAAepI,MAAf;EACA,gEAAgBC,OAAhB;EACA,gGAAgCiD,uBAAhC;EAEA2E,IAAAA,iBAAiB,CAACpR,MAAlB,GAA2BA,MAA3B;EACAoR,IAAAA,iBAAiB,CAAC7H,MAAlB,GAA2BA,MAA3B;EACA6H,IAAAA,iBAAiB,CAACO,OAAlB,GAA4BA,OAA5B;EACD;;EAED9G,EAAAA,mBAAmB,GAAI;EACrB,UAAMxE,SAAS,GAAGnE,cAAc,CAAC2C,kBAAf,CAAkCrJ,YAAlC,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;EAC1D;EACD;;EACD,SAAKuE,gBAAL,GAAwB,IAAxB;;EACA,SAAK,MAAM3G,GAAX,IAAkBoC,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAAClH,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,cAAM6B,WAAW,GAAGO,SAAS,CAACpC,GAAD,CAA7B;;EACA,YAAI,OAAO6B,WAAW,CAACosC,KAAnB,KAA6B,WAAjC,EAA8C;EAC5C,kEAAahsC,KAAb,CAAmB,+BAA+BJ,WAAW,CAACG,CAA9D;;EACA,cAAI,OAAOH,WAAW,CAACG,CAAnB,KAAyB,WAA7B,EAA0C;EACxC;EACZ;EAEY,kBAAMuD,OAAO,GAAGjH,IAAI,CAACK,KAAL,CAAWV,cAAc,CAAC2B,UAAf,CAA0B5I,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAA/D,CAAX,CAAhB;;EACA,gBAAI6P,OAAJ,aAAIA,OAAJ,uBAAIA,OAAO,CAAEC,CAAb,EAAgB;EACd3D,cAAAA,WAAW,CAACG,CAAZ,GAAgBH,WAAW,CAACG,CAAZ,GAAgB,KAAhB,GAAwBuD,OAAO,CAACC,CAAhD;EACD;;EACD2H,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BzL,WAAW,CAACG,CAA1C;EACD;;EACDH,UAAAA,WAAW,CAACosC,KAAZ,GAAoB,IAApB;EACD;EACF;EACF;;EACDhwC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/I,YAAhC,EAA8C6K,SAA9C;EACA,SAAKuE,gBAAL,GAAwB,KAAxB;EACD;;EAEDkP,EAAAA,qBAAqB,CAAExK,UAAF,EAAc6iC,UAAd,EAA0B;EAC7C;EACA,QAAI,OAAOA,UAAP,KAAsB,WAA1B,EAAuC;EACrC7iC,MAAAA,UAAU,GAAGxP,sBAAsB,CAACwP,UAAD,8BAAa,IAAb,wBAAnC;EACD;;EAED,QAAI,CAACtQ,aAAa,CAAC,wDAAakyC,SAAd,CAAlB,EAA4C;EAC1C5hC,MAAAA,UAAU,CAAC8iC,UAAX,GAAwB,wDAAalB,SAArC;EACA,8DAAaA,SAAb,GAAyB,EAAzB;EACD;;EAED5hC,IAAAA,UAAU,CAAC3V,EAAX,GAAgB,0DAAcA,EAA9B;;EAEA,QAAIgG,YAAY,CAAC,wDAAa2G,OAAd,CAAhB,EAAwC;EACtCgJ,MAAAA,UAAU,CAACoM,CAAX,GAAe,wDAAapV,OAA5B;EACD;;EAED,UAAMrH,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACAmF,IAAAA,UAAU,CAAC7F,CAAX,GAAexK,GAAG,CAACwK,CAAnB,CAlB6C;;EAmB7C6F,IAAAA,UAAU,CAAC+iC,EAAX,GAAiB,OAAOpzC,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAzD,CAnB6C;;EAoB7C,QAAI4xB,KAAK,GAAG3nC,QAAQ,CAACqB,QAAT,CAAkB4+B,QAA9B;EACA0H,IAAAA,KAAK,GAAGA,KAAK,CAACrqC,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAR;EACA4O,IAAAA,UAAU,CAACgjC,EAAX,GAAgB,EAAE,GAAGhjC,UAAU,CAACgjC,EAAhB;EAAoBC,MAAAA,GAAG,EAAE,iBAAzB;EAAyDlP,MAAAA,QAAQ,EAAE0H,KAAnE;EAA0E,SAAGpmC,GAAG,CAACgD;EAAjF,KAAhB,CAtB6C;;EAuB7C,QAAIogC,cAAc,CAAC5oC,cAAf,CAA8B,QAA9B,CAAJ,EAA6C;EAAEmQ,MAAAA,UAAU,CAACpJ,KAAX,GAAmB,IAAnB;EAAyB;;EAExE,WAAOoJ,UAAP;EACD;;EAEDyK,EAAAA,QAAQ,CAAErX,IAAF,EAAQ;EACd;EACA,oEAAoBR,cAAc,CAACwD,mBAAf,CAAmChL,KAAnC,CAApB;;EACA,QAAI,kEAAsBmF,SAAtB,gCAAmC,IAAnC,6BAAJ,EAA0D;EACxD6C,MAAAA,IAAI,CAAC8vC,EAAL,GAAU,IAAV;;EACA,8DAAatsC,KAAb,CAAmB,yEAAnB;EACD;;EACD,oCAAI,IAAJ,6DAAqC;EACnC,YAAMusC,YAAY,GAAGvwC,cAAc,CAACoD,WAAf,CAA2B,QAA3B,CAArB;EACA,YAAMotC,aAAa,GAAGxwC,cAAc,CAACoD,WAAf,CAA2B,MAA3B,CAAtB,CAFmC;;EAKnC,UAAI,OAAOmtC,YAAP,KAAwB,WAAxB,IAAuC,OAAOC,aAAP,KAAyB,WAApE,EAAiF;EAC/EhwC,QAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACA;EACD;;EACD,YAAMhtB,GAAG,GAAG3kB,MAAM,EAAlB,CATmC;;EAWnC,UAAIyxC,YAAY,GAAGC,aAAf,GAA+B/sB,GAAnC,EAAwC;EACtCjjB,QAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACD;EACF;EACF,GApGiC;;EAuGlC;EACF;EACA;EACA;EACA;EACA;;;EACE14B,EAAAA,kBAAkB,CAAEtM,GAAF,EAAOoK,QAAP,EAAiBtG,WAAjB,EAA8B5E,OAA9B,EAAuC;EACvD,UAAM8Y,GAAG,GAAG3kB,MAAM,EAAlB;EACA2M,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,EAAEhJ,GAAG,CAACC,WAAJ,CAAgB2B,KAA9B,CAAd;EACA,UAAM7D,IAAI,GAAGiL,GAAG,GAAG,KAAN,GAAcgY,GAAd,GAAoB,MAApB,GAA6BosB,KAA1C;EACA7vC,IAAAA,cAAc,CAAC4D,WAAf,CAA2BpD,IAA3B,EAAiCiC,GAAG,CAACC,WAAJ,CAAgB2B,KAAjD,8BAAwD,IAAxD,yBAJuD;;EAOvD,QAAI5B,GAAG,CAAC6C,OAAR,EAAiB,OAPsC;EASvD;EACA;EACA;EACA;;EACA,QAAI,CAAC,CAACuQ,QAAD,IAAc,kEAAsBlY,SAAtB,gCAAmC,IAAnC,6BAAf,KAAyE,CAACyE,MAAM,CAAC0F,eAArF,EAAsG;EACpG,UAAI2b,GAAG,KAAKqsB,WAAZ,EAAyB;EACvBD,QAAAA,KAAK;EACN,OAFD,MAEO;EACLC,QAAAA,WAAW,GAAGrsB,GAAd;EACAosB,QAAAA,KAAK,GAAG,CAAR;EACD;;EACDztC,MAAAA,MAAM,CAAC2F,OAAP,GAAiBtF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC;EACA6K,MAAAA,iBAAiB,CAACG,WAAlB,CAA8B7O,IAA9B,EAAoC,KAApC,EAA2C+O,WAA3C,EAAwD5E,OAAxD;EACD,KATD,MASO;EACL,8DAAa3G,KAAb,uCAAkDvB,GAAG,CAACgC,YAAtD,2DAAuF,IAAvF,wEAAyIrC,MAAM,CAAC0F,eAAhJ;EACD;EACF;;EAEDQ,EAAAA,sBAAsB,CAAEooC,SAAF,EAAa;EACjC,UAAMhxB,OAAO,GAAG1f,cAAc,CAAC2C,kBAAf,CAAkC7H,sBAAlC,CAAhB,CADiC;;EAGjC,QAAI4kB,OAAJ,EAAa;EACX,YAAMlf,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,MAAZ;;EACA,UAAI3N,YAAY,CAACizC,SAAD,CAAhB,EAA6B;EAC3BlwC,QAAAA,IAAI,CAACgZ,CAAL,GAASk3B,SAAT;EACD;;EACDlwC,MAAAA,IAAI,CAAC0e,MAAL,GAAc,YAAd;EACA1e,MAAAA,IAAI,CAAC/I,EAAL,GAAU,0DAAcA,EAAxB;;EAEA,YAAMsF,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EAEAzH,MAAAA,IAAI,CAAC+G,CAAL,GAASxK,GAAG,CAACwK,CAAb,CAXW;;EAYX,YAAMuQ,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACA5I,MAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EAA2C,IAA3C;EACA9P,MAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACD,KAtBgC;;;EAwBjC,SAAKkkC,aAAL,CAAmBrf,OAAnB;EACD;;EAEDqf,EAAAA,aAAa,CAAErf,OAAF,EAAW;EACtB,QAAI,CAACA,OAAL,EAAc,OADQ;;EAGtBA,IAAAA,OAAO,GAAG,KAAK9H,qBAAL,CAA2B8H,OAA3B,EAAoC,IAApC,CAAV;EACAA,IAAAA,OAAO,GAAGrf,IAAI,CAACC,SAAL,CAAeof,OAAf,CAAV;;EACA,QAAI5P,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAACuS,OAAD,8BAAU,IAAV,wBAA/B,CAAtB;EACAxQ,IAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EARsB;;EAUtB9P,IAAAA,cAAc,CAACC,IAAf,CAAoBxG,cAApB,EAAoC,IAApC;EACD;;EAED8R,EAAAA,YAAY,CAAE/K,IAAF,EAAQ;EAClB,gFAAyBA,IAAI,CAACmK,OAA9B;;EACAnK,IAAAA,IAAI,GAAG,KAAKoX,qBAAL,CAA2BpX,IAA3B,EAAiC7C,SAAjC,CAAP;EACA,SAAKka,QAAL,CAAcrX,IAAd;EACAA,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;EACA,UAAM2F,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EAEA,SAAKC,kBAAL,CAAwBjI,WAAxB,EAAqCrN,GAAG,CAACgC,YAAzC,EAAuD,KAAvD,EAA8DjE,IAAI,CAACmK,OAAnE;EACD;;EA2BDgmC,EAAAA,IAAI,CAAEllC,GAAF,EAAO2Z,IAAP,EAAa;EACf,WAAOwrB,KAAK,CAACnlC,GAAD,EAAM;EAChBolC,MAAAA,MAAM,EAAE,MADQ;EAEhBC,MAAAA,OAAO,EAAE;EAAE,wBAAgB;EAAlB,OAFO;EAGhB1rB,MAAAA,IAAI,EAAEA;EAHU,KAAN,CAAL,CAKJ6G,IALI,CAKE8kB,QAAD,IAAc;EAClB,UAAIA,QAAQ,CAACC,EAAb,EAAiB;EACf,eAAOD,QAAQ,CAAC1c,IAAT,EAAP;EACD;;EACD,YAAM0c,QAAN;EACD,KAVI,EAWJ9kB,IAXI,CAWEzrB,IAAD,IAAU;EACd,8DAAawD,KAAb,CAAmB,sBAAnB,EAA2CxD,IAA3C;;EACA,aAAOA,IAAP;EACD,KAdI,EAeJ0rB,KAfI,CAeGvrB,CAAD,IAAO;EACZ,8DAAaqD,KAAb,CAAmB,4BAAnB,EAAiDrD,CAAjD;;EACA,YAAMA,CAAN;EACD,KAlBI,CAAP;EAmBD;;EA1OiC;;2DA6LbgK,SAAS;EAC5B,MAAI3K,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI,OAAOuC,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,UAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,QAAAA,GAAG,CAAC+B,eAAJ,GAAsB,EAAtB;EACD;EACF;;EAED,UAAMysC,KAAK,GAAGnyC,MAAM,EAApB;EACA,QAAIoyC,SAAS,GAAGzuC,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAhB;;EACA,QAAI,OAAOumC,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,CAAC,CAAD,CAAT,GAAeD,KAAf;EACAC,MAAAA,SAAS,CAAC,CAAD,CAAT;EACD,KAHD,MAGO;EACLA,MAAAA,SAAS,GAAG,EAAZ;EACAA,MAAAA,SAAS,CAAChrC,IAAV,CAAe,CAAf;EACAgrC,MAAAA,SAAS,CAAChrC,IAAV,CAAe+qC,KAAf;EACAC,MAAAA,SAAS,CAAChrC,IAAV,CAAe+qC,KAAf;EACD;;EACDxuC,IAAAA,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,IAA+BumC,SAA/B;EACAlxC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;EACD;EACF;;;;;;;;;;;;EC5MY,MAAM2sC,OAAN,SAAsBpnC,KAAtB,CAA4B;EAMzCvS,EAAAA,WAAW,OAKX8S,MALW,EAKH;EAAA,QALK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGX3R,MAAAA;EAHW,KAKL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,8DAAeA,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACD,GAjBwC;;;EAoBzCpE,EAAAA,IAAI,GAAiB;EAAA,sCAAZkrC,UAAY;EAAZA,MAAAA,UAAY;EAAA;;EACnB,QAAI3uC,GAAG,CAAC2C,kBAAR,EAA4B;EAC1B,oFAA0B3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA1B,GAA8BsE,GAAG,CAAC4C,YAAlC,GAAiD+rC,UAA3E;EACD,KAFD,MAEO;EACL3uC,MAAAA,GAAG,CAAC4C,YAAJ,CAAiBa,IAAjB,CAAsB,GAAGkrC,UAAzB;EACD;;EACD,WAAO,CAAP;EACD;;EAED3mC,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAlCwC;;6DAoCnB2mC,YAAY;EAChC,MAAIrnC,KAAK,CAACC,OAAN,CAAconC,UAAd,KAA6BA,UAAU,CAACjzC,MAAX,GAAoB,CAArD,EAAwD;EACtD,UAAMkzC,UAAU,GAAGD,UAAU,CAACtsB,MAAX,CAAkB,CAACsU,IAAD,EAAOkY,IAAP,MAAiB,EAAE,GAAGlY,IAAL;EAAW,SAAGkY;EAAd,KAAjB,CAAlB,EAA0D,EAA1D,CAAnB;EACA,QAAI9wC,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA,QAAIq+B,MAAM,GAAG,KAAb;;EAEA,QAAIF,UAAU,CAACp0C,cAAX,CAA0BvD,UAA1B,CAAJ,EAA2C;EACzC63C,MAAAA,MAAM,GAAGF,UAAU,CAAC33C,UAAD,CAAnB;;EACA,UAAI,OAAO63C,MAAP,KAAkB,SAAtB,EAAiC;EAC/Br+B,QAAAA,UAAU,CAACvZ,aAAD,CAAV,GAA4B43C,MAA5B,CAD+B;;EAG/B9uC,QAAAA,GAAG,CAACiC,cAAJ,GAAqB,CAAC6sC,MAAtB;EACD;EACF;;EACD,QAAIF,UAAU,CAACp0C,cAAX,CAA0BpD,SAA1B,CAAJ,EAA0C;EACxC,YAAMkW,KAAK,GAAGshC,UAAU,CAACx3C,SAAD,CAAxB;EACA,YAAM23C,WAAW,GAAI,OAAOzhC,KAAP,KAAiB,SAAlB,GAA+BA,KAA/B,GAAuC,KAA3D;EACA/P,MAAAA,cAAc,CAACsD,WAAf,CAA2BzJ,SAA3B,EAAsC23C,WAAtC;EACD;;EACD,QAAI,CAAC10C,aAAa,CAACoW,UAAD,CAAlB,EAAgC;EAC9B1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA5K,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA,YAAMma,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACAhI,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAcpW,UAAd,EAA0B63C,MAAM,GAAG,MAAH,GAAY,OAA5C,CAAtB;;EACA,gEAAcx5B,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EACA2sC,MAAAA,UAAU,CAAClqC,MAAX,CAAkB,CAAlB,EAAqBkqC,UAAU,CAACjzC,MAAhC;EACD;EACF;EACF;;;;ECzFI,MAAMszC,QAAN,CAAe;EAGpB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACEj6C,EAAAA,WAAW,OAAqB;EAAA,QAAnB;EAAEkO,MAAAA;EAAF,KAAmB;EAAA;EAAA;EAAA;EAAA;EAC9B,SAAK3E,IAAL,GAAY,IAAZ;EACA,SAAK2wC,YAAL,GAAoB,IAApB;EACA,SAAKh0C,KAAL,GAAa,IAAb;EACA,SAAK0N,IAAL,GAAY,IAAZ;EACA,SAAKumC,UAAL,GAAkB,KAAlB;EACA,SAAKC,qBAAL,GAA6B,EAA7B;EACA,wEAAsBlsC,aAAtB;EACD;;EAEDmsC,EAAAA,QAAQ,GAAI;EACV,WAAO,KAAKn0C,KAAZ;EACD;;EAEDo0C,EAAAA,eAAe,GAAI;EACjB,WAAO,KAAKJ,YAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;EACE,SAAOplB,MAAP,CAAevrB,IAAf,EAAqB2wC,YAArB,EAAmChsC,aAAnC,EAAkD;EAChD,QAAI,CAAC3E,IAAD,IAAS,OAAOA,IAAP,KAAgB,QAA7B,EAAuC;EACrCmR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,2CAAd;EACA,aAAO,IAAP;EACD;;EACD,QAAIhI,IAAI,CAAC2hB,UAAL,CAAgB,GAAhB,KAAwB3hB,IAAI,CAACy3B,QAAL,CAAc,GAAd,CAA5B,EAAgD;EAC9CtmB,MAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAmEhI,IAAjF;EACA,aAAO,IAAP;EACD;;EAED,UAAMgxC,kBAAkB,GAAG,OAAOL,YAAlC;;EACA,QAAIK,kBAAkB,KAAK,QAAvB,IAAmCA,kBAAkB,KAAK,QAA1D,IAAsEA,kBAAkB,KAAK,SAAjG,EAA4G;EAC1G7/B,MAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACA,aAAO,IAAP;EACD;;EAED,UAAMipC,QAAQ,GAAGtsC,aAAa,CAACusC,WAAd,CAA0BlxC,IAA1B,CAAjB;;EACA,QAAIixC,QAAJ,EAAc;EACZ,aAAOA,QAAP;EACD;;EAED,UAAME,WAAW,GAAG,IAAIT,QAAJ,CAAa;EAAE/rC,MAAAA;EAAF,KAAb,CAApB;;EACA,QAAI;EACFwsC,MAAAA,WAAW,CAACnxC,IAAZ,GAAmBA,IAAnB;EACAmxC,MAAAA,WAAW,CAACR,YAAZ,GAA2BA,YAA3B;EACAQ,MAAAA,WAAW,CAACx0C,KAAZ,GAAoBg0C,YAApB;EACAQ,MAAAA,WAAW,CAAC9mC,IAAZ,GAAmB2mC,kBAAnB;EACArsC,MAAAA,aAAa,CAACysC,gBAAd,CAA+BD,WAA/B;EACAA,MAAAA,WAAW,CAACE,MAAZ,CAAmBV,YAAnB;EACD,KAPD,CAOE,OAAO3oC,KAAP,EAAc;EACdmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAcA,KAAd;EACD;;EACD,WAAOmpC,WAAP;EACD;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,MAAM,CAAEC,QAAF,EAAY;EAChB,UAAMC,QAAQ,GAAG,KAAK50C,KAAtB;EACA,SAAKA,KAAL,GAAa20C,QAAb;;EACA,QAAIA,QAAQ,KAAK,IAAb,IAAqBC,QAAQ,KAAK,IAAtC,EAA4C;EAC1C;EACD;;EACD,QAAID,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKC,QAAlC,IAA8C,KAAKX,UAAvD,EAAmE;EACjE;EACD;;EACD,QAAI,kEAAoBY,uBAApB,EAAJ,EAAmD;EACjD,WAAKZ,UAAL,GAAkB,IAAlB;EACA,WAAKa,mBAAL;EACD;EACF;EAED;EACF;EACA;;;EACEA,EAAAA,mBAAmB,GAAI;EACrB,SAAKZ,qBAAL,CAA2BngC,OAA3B,CAAoCghC,cAAD,IAAoB;EACrDA,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD,KAFD;EAGD;EAED;EACF;EACA;EACA;;;EACEC,EAAAA,uBAAuB,CAAED,cAAF,EAAkB;EACvC,QAAI,CAACA,cAAL,EAAqB;EACnBvgC,MAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;EACD;;EACD,SAAKwxB,qBAAL,CAA2B1rC,IAA3B,CAAgCusC,cAAhC;;EAEA,QAAI,kEAAoBF,uBAApB,EAAJ,EAAmD;EACjDE,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD;EACF;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,0BAA0B,CAAEF,cAAF,EAAkB;EAC1C,UAAMhsC,KAAK,GAAG,KAAKmrC,qBAAL,CAA2B1vC,OAA3B,CAAmCuwC,cAAnC,CAAd;;EACA,QAAIhsC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,WAAKmrC,qBAAL,CAA2B1qC,MAA3B,CAAkCT,KAAlC,EAAyC,CAAzC;EACD;EACF;EAED;EACF;EACA;;;EACEmsC,EAAAA,cAAc,GAAI;EAChB,SAAKjB,UAAL,GAAkB,KAAlB;EACD;;EAxImB;;;;;;;;;;;;;;;;;;;;;;;;ECEtB,MAAMkB,aAAN,CAAoB;EAalBr7C,EAAAA,WAAW,OAAuC;EAAA,QAArC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBqI,MAAAA,OAAnB;EAA4B0gB,MAAAA;EAA5B,KAAqC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAFvB;EAEuB;EAChD,8DAAeryB,MAAf;EACA,gEAAgB2R,OAAhB;EACA,gEAAgBrI,OAAhB;EACA,wDAAc+oB,KAAd;EAEA,gEAAkB,EAAlB;EACA,4EAAwB,EAAxB;EACA,gGAAkC,EAAlC;EACA,8GAAyC,EAAzC;EAEA1tB,IAAAA,GAAG,CAACiD,aAAJ,GAAoB,IAApB;EACD;EAED;EACF;EACA;EACA;;;EACEysC,EAAAA,gBAAgB,CAAED,WAAF,EAAe;EAC7B,UAAM;EAAEnxC,MAAAA;EAAF,QAAWmxC,WAAjB;EACA,8DAAgBnxC,IAAhB,IAAwBmxC,WAAxB;EACAhgC,IAAAA,OAAO,CAACkO,GAAR,CAAY,kBAAZ,8BAAgC,IAAhC;EACD;EAED;EACF;EACA;EACA;EACA;;;EACE6xB,EAAAA,WAAW,CAAElxC,IAAF,EAAQ;EACjB,WAAO,0DAAgBA,IAAhB,CAAP;EACD;;EAEDwxC,EAAAA,uBAAuB,GAAI;EACzB,uCAAO,IAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEO,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,CAAC,0DAAcp7C,KAAnB,EAA0B;EACxB,YAAMgI,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,UAAM8f,OAAO,GAAG;EACdtU,MAAAA,IAAI,EAAE,aADQ;EAEdsiC,MAAAA,IAAI,EAAE;EAFQ,KAAhB;;EAKA,SAAK,MAAM3sC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC2e,MAAAA,OAAO,CAACguB,IAAR,CAAa3sC,IAAb,IAAqB;EACnB2wC,QAAAA,YAAY,EAAE,0DAAgB3wC,IAAhB,EAAsB2wC,YADjB;EAEnBtmC,QAAAA,IAAI,EAAE,0DAAgBrK,IAAhB,EAAsBqK;EAFT,OAArB;EAID,KAjB0C;;;EAoB3C,QAAI5O,MAAM,CAACgV,IAAP,CAAYkO,OAAO,CAACguB,IAApB,EAA0BvvC,MAA1B,KAAqC,CAAzC,EAA4C;EAC1C,YAAMyB,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,QAAIqzC,IAAI,GAAG,EAAX;EACAA,IAAAA,IAAI,GAAG,0DAAcr7B,qBAAd,CAAoCq7B,IAApC,EAA0Ct1C,SAA1C,CAAP;EACAs1C,IAAAA,IAAI,CAACC,EAAL,GAAU,0DAAct7C,KAAxB;EAEAq7C,IAAAA,IAAI,CAAC7nC,IAAL,GAAY,MAAZ;EACA,UAAMga,IAAI,GAAG/kB,IAAI,CAACC,SAAL,CAAe,CAAC2yC,IAAD,EAAOvzB,OAAP,CAAf,CAAb;;EACA,UAAMjU,GAAG,GAAG,0DAAczT,aAA1B;;EAEA,WAAO,0DAAc24C,IAAd,CAAmBllC,GAAnB,EAAwB2Z,IAAxB,EACJ6G,IADI,CACEknB,CAAD,IAAO;EACX,UAAIJ,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACI,CAAD,CAAb;EACD;;EACD,aAAOA,CAAP;EACD,KANI,EAOJjnB,KAPI,CAOGvrB,CAAD,IAAO;EACZ,UAAIqyC,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACryC,CAAD,CAAb;EACD;;EACD,UAAIA,CAAC,CAACyyC,MAAF,KAAa,GAAjB,EAAsB;EACpB,gEAAarqC,KAAb,CAAmB,kDAAnB;EACD,OAFD,MAEO,IAAIpI,CAAC,CAACyyC,MAAF,KAAa,GAAjB,EAAsB;EAC3B,gEAAarqC,KAAb,CAAmB,4BAAnB;EACD,OAFM,MAEA;EACL,gEAAaA,KAAb,CAAmB,sBAAnB;EACD;;EACD,YAAMpI,CAAN;EACD,KAnBI,CAAP;EAoBD;EAED;EACF;EACA;EACA;;;EACE0yC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,sDAAYptC,IAAZ,CAAiBvK,UAAjB,EAA6B;EAAE6M,MAAAA,CAAC,EAAE;EAAL,KAA7B;;EACA,QAAI8qC,eAAe,IAAI,OAAOA,eAAP,KAA2B,UAAlD,EAA8D;EAC5D,0EAAsBA,eAAtB;EACD;EACF;;EAED3F,EAAAA,cAAc,CAAED,IAAF,EAAQ;EACpBx7B,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4BstB,IAA5B;EACA,4FAAgC,IAAhC;EAEA1tC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC7G,SAAhC,EAA2CkyC,IAA3C;EACA,4EAAwBA,IAAxB;;EAEA,SAAK,MAAM3sC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC,UAAI2sC,IAAI,CAACzwC,cAAL,CAAoB8D,IAApB,CAAJ,EAA+B;EAC7B,kEAAgBA,IAAhB,EAAsBqxC,MAAtB,CAA6B1E,IAAI,CAAC3sC,IAAD,CAAjC;EACD;EACF;;EAED,oCAAI,IAAJ,mCAAyB;EACvB;EACD;;EAED;EACD;;EAEDwyC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,gGAAgCttC,IAAhC,CAAqCstC,QAArC;;EAEA,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT;EACF,KAND,MAMO;EACL,8DAAazqC,KAAb,CAAmB,4BAAnB;EACD;EACF;;EAED0qC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT,OAFD,MAEO;EACL,gHAAuCttC,IAAvC,CAA4CstC,QAA5C;EACD;EACF;EACF;;EAEDE,EAAAA,8BAA8B,CAAEF,QAAF,EAAY;EACxC,UAAM/sC,KAAK,GAAG,0FAAgCvE,OAAhC,CAAwCsxC,QAAxC,CAAd;;EACA,QAAI/sC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,gGAAgCS,MAAhC,CAAuCT,KAAvC,EAA8C,CAA9C;EACD;EACF;;EAEDktC,EAAAA,qCAAqC,CAAEH,QAAF,EAAY;EAC/C,UAAM/sC,KAAK,GAAG,wGAAuCvE,OAAvC,CAA+CsxC,QAA/C,CAAd;;EACA,QAAI/sC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,8GAAuCS,MAAvC,CAA8CT,KAA9C,EAAqD,CAArD;EACD;EACF;;EAlLiB;;+EAoLc;EAC9B,OAAK,IAAI+sC,QAAT,gCAAqB,IAArB,2DAAsD;EACpDA,IAAAA,QAAQ;EACT;;EACD,OAAK,IAAII,QAAT,gCAAqB,IAArB,yEAA6D;EAC3DA,IAAAA,QAAQ;EACT;;EACD,0GAAuCz1C,MAAvC,GAAgD,CAAhD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC7IY,MAAM01C,SAAN,CAAgB;EAgB7B,MAAIC,GAAJ,GAAW;EACT,uCAAO,IAAP;EACD;;EAED,MAAIA,GAAJ,CAASp2C,KAAT,EAAgB;EACd,UAAMq2C,KAAK,GAAGr2C,KAAK,KAAK,IAAxB;;EACA,QAAI,sDAAgBq2C,KAAhB,IAAyB,oEAAuB,CAApD,EAAuD;EACrD;EACA,UAAIA,KAAJ,EAAW;EACT7yC,QAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EACD,OAFD,MAEO;EACLva,QAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;EACF;;EACD,wDAAc6vB,KAAd;EACD;;EAED,MAAIxuC,kBAAJ,GAA0B;EACxB,uCAAO,IAAP;EACD;;EAED,MAAIA,kBAAJ,CAAwB7H,KAAxB,EAA+B;EAC7B,UAAM6H,kBAAkB,GAAG7H,KAAK,KAAK,IAArC;EACA,kFAA2B6H,kBAA3B;EACA9C,IAAAA,GAAG,CAAC8C,kBAAJ,GAAyBA,kBAAzB;EACD;;EAED/N,EAAAA,WAAW,GAAkB;EAAA;;EAAA,QAAhB2Y,SAAgB,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAhCJ,wEAAuB6jC,IAAvB,CAA4B,IAA5B;EAgCI;EAAA;EAAA;EAAA;EAAA;EAAA,SA9B7BC,qBA8B6B;EAAA;EAAA;EAAA;EAAA;EAAA,SAswB7B5I,cAtwB6B,GAswBZ,EAtwBY;EAAA,SAuwB7BT,kBAvwB6B,GAuwBR,EAvwBQ;EAC3B,sEAAqB,CAArB;EACA,SAAKsJ,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BF,IAA9B,CAAmC,IAAnC,CAAhC;;EACA,SAAK7kB,wBAAL,GAAgC,MAAM,EAAtC;;EACA,8DAAe,IAAI2f,MAAJ,CAAWN,SAAS,CAACG,IAArB,CAAf;EACA,gEAAgB,IAAIp3C,OAAJ,uBAAY4Y,SAAS,CAACV,OAAtB,uDAAY,mBAAoB,CAApB,CAAZ,EAAoCU,SAAS,CAACzY,MAAV,4BAAoByY,SAAS,CAACV,OAA9B,wDAAoB,oBAAoB,CAApB,CAApB,CAApC,EAAgFU,SAAS,CAACxY,YAAV,4BAA0BwY,SAAS,CAACV,OAApC,wDAA0B,oBAAoB,CAApB,CAA1B,CAAhF,EAAkIU,SAAS,CAACvY,KAAV,4BAAmBuY,SAAS,CAACV,OAA7B,wDAAmB,oBAAoB,CAApB,CAAnB,CAAlI,CAAhB;EACA,8DAAe,IAAI7G,aAAJ,CAAkB;EAAE9K,MAAAA,MAAM,8BAAE,IAAF;EAAR,KAAlB,CAAf;EACA,kFAA2BqS,SAAS,CAAC5K,kBAAV,IAAgC,KAA3D;EACA,SAAK4uC,cAAL,GAAsBhkC,SAAS,CAACgkC,cAAV,IAA4B,EAAlD;EACA,gEAAgB,IAAI9E,cAAJ,CAAmB;EACjCvxC,MAAAA,MAAM,8BAAE,IAAF,uBAD2B;EAEjCyM,MAAAA,uBAAuB,EAAE,KAAK2pC;EAFG,KAAnB,CAAhB;EAIA,gEAAgB,IAAIE,cAAJ,CAAkB;EAChCt2C,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhC2R,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCpI,MAAAA,MAAM,8BAAE,IAAF,uBAH0B;EAIhCC,MAAAA,OAAO,8BAAE,IAAF,yBAJyB;EAKhCiD,MAAAA,uBAAuB,EAAE,KAAK2pC;EALE,KAAlB,CAAhB;EAOA,SAAKD,qBAAL,GAA6B9jC,SAAS,CAAC8jC,qBAAV,IAAmC,KAAhE;EACA,SAAK9jB,KAAL,GAAa,IAAI9lB,YAAJ,CAAiB;EAC5BvM,MAAAA,MAAM,8BAAE,IAAF,uBADsB;EAE5BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFqB;EAG5BmD,MAAAA,uBAAuB,EAAE,KAAK2pC;EAHF,KAAjB,EAIV/jC,SAAS,CAACggB,KAJA,CAAb;EAMA,SAAKxY,OAAL,GAAe,IAAIP,cAAJ,CAAmB;EAChCtZ,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCqI,MAAAA,OAAO,8BAAE,IAAF,yBAHyB;EAIhClF,MAAAA,uBAAuB,EAAE,KAAK2pC;EAJE,KAAnB,EAKZ/jC,SAAS,CAACwH,OALE,CAAf;EAOA,SAAK08B,WAAL,GAAmB,IAAIj7B,gBAAJ,CAAqB;EACtChS,MAAAA,OAAO,8BAAE,IAAF,yBAD+B;EAEtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCnI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItCxJ,MAAAA,MAAM,8BAAE,IAAF,uBAJgC;EAKtCuJ,MAAAA,MAAM,8BAAE,IAAF;EALgC,KAArB,EAMhB8I,SAAS,CAACkkC,WANM,CAAnB;EAQA,SAAKC,OAAL,GAAe,IAAInD,OAAJ,CAAY;EACzB/pC,MAAAA,OAAO,8BAAE,IAAF,yBADkB;EAEzBqI,MAAAA,OAAO,8BAAE,IAAF,yBAFkB;EAGzB3R,MAAAA,MAAM,8BAAE,IAAF;EAHmB,KAAZ,EAIZqS,SAAS,CAACmkC,OAJE,CAAf;EAMA,SAAK3Y,aAAL,GAAqB,IAAIwB,mBAAJ,CAAwB;EAC3Cr/B,MAAAA,MAAM,8BAAE,IAAF,uBADqC;EAE3CsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoC;EAG3CqI,MAAAA,OAAO,8BAAE,IAAF;EAHoC,KAAxB,EAIlBU,SAAS,CAACwrB,aAJQ,CAArB;EAMA,4EAAsB,IAAIkX,aAAJ,CAAkB;EACtC/0C,MAAAA,MAAM,8BAAE,IAAF,uBADgC;EAEtCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItC0gB,MAAAA,KAAK,EAAE,KAAKA;EAJ0B,KAAlB,CAAtB;EAOA,oDAAY,IAAIhpB,YAAJ,CAAiB;EAC3BrJ,MAAAA,MAAM,8BAAE,IAAF,uBADqB;EAE3BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoB;EAG3BC,MAAAA,MAAM,8BAAE,IAAF,uBAHqB;EAI3BC,MAAAA,OAAO,8BAAE,IAAF;EAJoB,KAAjB,CAAZ;EAOA,SAAKwsC,GAAL,GAAW3jC,SAAS,CAAC2jC,GAArB;EACA,SAAKvuC,kBAAL,GAA0B4K,SAAS,CAAC5K,kBAApC;EAEA,SAAKkO,IAAL,GAAY,IAAI06B,IAAJ,CAAS;EACnB5jC,MAAAA,uBAAuB,EAAE,KAAK2pC;EADX,KAAT,CAAZ;EAIA,SAAK5sC,OAAL,GAAe;EACbooC,MAAAA,cAAc,EAAE,MAAM;EACpB,eAAO,0DAAcA,cAAd,EAAP;EACD,OAHY;EAIbE,MAAAA,YAAY,EAAE,MAAM;EAClB,eAAO,0DAAcA,YAAd,EAAP;EACD;EANY,KAAf;;EASA,SAAK2E,MAAL,GAAc,MAAM;EAClB,8DAAavwC,KAAb,CAAmB,eAAnB;;EACAhE,MAAAA,cAAc,CAACyD,uBAAf;EACD,KAHD;;EAKA,SAAK4V,KAAL,GAAa,MAAM;EACjB,WAAKg7B,WAAL,CAAiBh7B,KAAjB;EACD,KAFD;;EAIA,SAAKm7B,cAAL,GAAsB,MAAM;EAC1B,aAAO,wDAAa3rC,OAAb,EAAP;EACD,KAFD;;EAIA,SAAK4rC,YAAL,GAAoB,MAAM;EACxB,aAAO,0DAAch9C,EAArB;EACD,KAFD;;EAIA,SAAKi9C,WAAL,GAAmB,MAAM;EACvB,aAAO,0DAAc38C,iBAArB;EACD,KAFD;;EAIA,SAAK48C,UAAL,GAAkB,CAACC,OAAD,EAAUC,UAAV,KAAyB;EACzCpyC,MAAAA,GAAG,CAACgD,cAAJ,GAAqB;EAAE,SAACmvC,OAAD,GAAWC;EAAb,OAArB;EACD,KAFD,CAzG2B;;;EA8G3B,SAAKC,eAAL,GAAwBC,GAAD,IAAS;EAC9B,gEAAcC,YAAd,GAA6BD,GAA7B;EACA,YAAMv0C,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4vC,EAAL,GAAU;EAAE6E,QAAAA,GAAG,EAAE,aAAa,0DAAcD;EAAlC,OAAV;;EACA,UAAIllC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EACA,gEAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD,KARD;;EAUA,QAAIypB,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EAChCI,MAAAA,kBAAkB,6BAAC,IAAD,wBAAlB;EACD,KA3H0B;;;EA8H3B,SAAKmqB,oBAAL,GAA4B,MAAM;EAChC,YAAMhyB,QAAQ,GAAGwB,gBAAgB,EAAjC;EACA,aAAOloB,MAAM,CAACgV,IAAP,CAAY0R,QAAZ,EAAsB/kB,MAA7B;EACD,KAHD,CA9H2B;;;EAoI3B,SAAKg3C,0BAAL,GAAkC,MAAM;EACtC,UAAI;EACF,cAAMC,cAAc,GAAG,KAAKC,sBAAL,EAAvB;EACA,cAAMC,MAAM,GAAG94C,MAAM,CAACgV,IAAP,CAAY4jC,cAAZ,EAA4Bj3C,MAA3C;EACA,eAAOm3C,MAAP;EACD,OAJD,CAIE,OAAO30C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,wCAAwCpI,CAA3D;EACD;EACF,KARD,CApI2B;;;EA+I3B,SAAK40C,mBAAL,GAA2B,MAAM;EAC/B,aAAO7wB,gBAAgB,EAAvB;EACD,KAFD,CA/I2B;;;EAoJ3B,SAAK2wB,sBAAL,GAA8B,MAAM;EAClC,UAAI;EACF,cAAM/wB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,cAAM4wB,MAAM,GAAG,EAAf;;EAEA,YAAI94C,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAAnC,EAAsC;EACpC,eAAK,MAAM+e,OAAX,IAAsBoH,QAAtB,EAAgC;EAC9B,gBAAIA,QAAQ,CAACpH,OAAD,CAAR,CAAkBY,MAAlB,KAA6B,CAAjC,EAAoC;EAClCw3B,cAAAA,MAAM,CAACp4B,OAAD,CAAN,GAAkBoH,QAAQ,CAACpH,OAAD,CAA1B;EACD;EACF;EACF;;EACD,eAAOo4B,MAAP;EACD,OAZD,CAYE,OAAO30C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,oCAAoCpI,CAAvD;EACD;EACF,KAhBD,CApJ2B;;;EAuK3B,SAAK60C,oBAAL,GAA6BC,SAAD,IAAe;EACzC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,eAAOnxB,QAAQ,CAACmxB,SAAD,CAAf;EACD,OAFD,MAEO;EACL,gEAAa1sC,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KAPD,CAvK2B;EAiL3B;EACA;;;EACA,SAAKC,kBAAL,GAA2BD,SAAD,IAAe;EACvC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,YAAInxB,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,KAA+B,CAAnC,EAAsC;EACpCrb,UAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,iBAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2B2zB,SAA3B,CAAP;EACA,gBAAME,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,cAAIw/B,aAAJ,EAAmB;EACjBA,YAAAA,aAAa,CAACn3B,SAAd,GAA0B/b,GAAG,CAAC0C,KAAJ,CAAU4c,eAApC;EACA4zB,YAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B1Y,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B,GAAgC,MAAhC,GAAyC,MAAvE;EACD;EACF;;EACD,cAAM6zB,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI2iB,OAAJ,EAAa;EACX,gBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCs/B,SAAlC,CAAX;EACA7wB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;EACD;;EACD,eAAO0jB,QAAQ,CAACmxB,SAAD,CAAf;EACAzwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAjBD,MAiBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KAtBD;EAwBA;EACJ;EACA;EACA;;;EACI,SAAKI,oBAAL,GAA6BJ,SAAD,IAAe;EACzC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,YAAInxB,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,KAA+B,CAAnC,EAAsC;EACpC,iBAAO,wDAAa/U,KAAb,CAAmB,2BAA2B0sC,SAA9C,CAAP;EACD;;EACD,cAAMG,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI2iB,OAAJ,EAAa;EACX,gBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCs/B,SAAlC,CAAX;;EACA,cAAI7wB,EAAE,KAAK,IAAX,EAAiB;EACfA,YAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,QAAAA,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,GAA6B,CAA7B;EACA,cAAM63B,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIw/B,aAAJ,EAAmB;EACjB,cAAIpuB,OAAO,GAAG2M,QAAQ,CAACyhB,aAAa,CAACn3B,SAAf,CAAR,GAAoC,CAAlD;EACAm3B,UAAAA,aAAa,CAACn3B,SAAd,GAA0B+I,OAA1B;EACAouB,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8BoM,OAAO,GAAG,CAAV,GAAc,MAAd,GAAuB,MAArD;EACD;;EACDnlB,QAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,UAAAA,KAAK,EAAEwJ,QAAQ,CAACmxB,SAAD,CAAR,CAAoB16B,OAA7B;EAAsCC,UAAAA,OAAO,EAAEsJ,QAAQ,CAACmxB,SAAD,CAAR,CAAoBz6B;EAAnE,SAA1C;EACAvY,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,eAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2B2zB,SAA3B,CAAP;EACAzwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAtBD,MAsBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KA3BD;EA6BA;;;EACA,SAAKK,2BAAL,GAAoCC,UAAD,IAAgB;EACjD,UAAIhsC,KAAK,CAACC,OAAN,CAAc+rC,UAAd,CAAJ,EAA+B;EAC7B,aAAK,IAAIt+C,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGs+C,UAAU,CAAC53C,MAAjC,EAAyC1G,EAAE,EAA3C,EAA+C;EAC7C,eAAKo+C,oBAAL,CAA0BE,UAAU,CAACt+C,EAAD,CAApC;EACD;EACF;EACF,KAND;EAQA;EACJ;EACA;EACA;;;EACI,SAAKu+C,uBAAL,GAA+B,MAAM;EACnC,YAAM1xB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,YAAMuxB,SAAS,GAAG,KAAKZ,sBAAL,EAAlB;;EACA,UAAI74C,MAAM,CAACgV,IAAP,CAAYykC,SAAZ,EAAuB93C,MAAvB,GAAgC,CAApC,EAAuC;EACrC,cAAMqmB,MAAM,GAAGhoB,MAAM,CAACgV,IAAP,CAAYykC,SAAZ,CAAf;EACAzxB,QAAAA,MAAM,CAAC/S,OAAP,CAAe1T,GAAG,IAAI;EACpB,gBAAM63C,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,cAAI2iB,OAAJ,EAAa;EACX,kBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCpY,GAAlC,CAAX;;EACA,gBAAI6mB,EAAE,KAAK,IAAX,EAAiB;EACfA,cAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,UAAAA,QAAQ,CAACvmB,GAAD,CAAR,CAAc+f,MAAd,GAAuB,CAAvB;EACA1b,UAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,YAAAA,KAAK,EAAEwJ,QAAQ,CAACvmB,GAAD,CAAR,CAAcgd,OAAvB;EAAgCC,YAAAA,OAAO,EAAEsJ,QAAQ,CAACvmB,GAAD,CAAR,CAAckd;EAAvD,WAA1C;EACD,SAVD;EAWA,cAAM06B,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIw/B,aAAJ,EAAmB;EACjBA,UAAAA,aAAa,CAACn3B,SAAd,GAA0B,CAA1B;EACAm3B,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACD6J,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA7hB,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B;EACAtf,QAAAA,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,GAA6B,EAA7B;EACD,OArBD,MAqBO;EACL,gEAAa9d,KAAb,CAAmB,+BAAnB;EACD;EACF,KA3BD;;EA6BA,SAAKye,WAAL,GAAoB9hB,CAAD;EAAA;;EAAA,2BAAO8B,GAAG,CAAC0C,KAAX,+CAAO,WAAWsd,WAAX,CAAuB9hB,CAAvB,CAAP;EAAA,KAAnB,CAtR2B;;;EAyR3B,SAAKqb,wBAAL,GAAiCwY,MAAD,IAAY;EAC1C0hB,MAAAA,wBAAwB,CAACv7C,mBAAD,EAAsB65B,MAAtB,CAAxB;EACD,KAFD,CAzR2B;;;EA8R3B,SAAKrY,yBAAL,GAAkCqY,MAAD,IAAY;EAC3C0hB,MAAAA,wBAAwB,CAACt7C,oBAAD,EAAuB45B,MAAvB,CAAxB;EACD,KAFD;;EAIA,UAAM0hB,wBAAwB,GAAG,CAACjrC,SAAD,EAAYkrC,WAAZ,KAA4B;EAC3D,UAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACr7B,KAAjC,EAAwC;EAAE;EAAQ;;EAClD,YAAMta,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAeM,SAAf;EACAzK,MAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,SAAC5Q,OAAD,GAAWy7C,WAAW,CAACr7B;EAAzB,OAAf;;EAEA,UAAIq7B,WAAW,CAACn7B,OAAhB,EAAyB;EACvBxa,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,UAAAA,UAAU,EAAEk7B,WAAW,CAACn7B;EAA3C,SAAf;EACD;;EAED,UAAIm7B,WAAW,CAACxd,YAAhB,EAA8B;EAC5Bn4B,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmBqtB,UAAAA,YAAY,EAAEwd,WAAW,CAACxd;EAA7C,SAAf;EACD,OAb0D;;;EAgB3D,UAAIwd,WAAW,CAACv2B,EAAZ,IAAkBu2B,WAAW,CAACv2B,EAAZ,KAAmB,IAArC,IAA6Cu2B,WAAW,CAACv2B,EAAZ,KAAmBjiB,SAApE,EAA+E;EAC7E,aAAK,MAAMI,GAAX,IAAkBo4C,WAAW,CAACv2B,EAA9B,EAAkC;EAChC,cAAI7hB,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOo4C,WAAW,CAACv2B,EAAZ,CAAe7hB,GAAf;EAA1B,aAAf;EACD;EACF;EACF,OAtB0D;;;EAyB3D,UAAIo4C,WAAW,CAAC3jB,OAAZ,IAAuB2jB,WAAW,CAAC3jB,OAAZ,KAAwB,IAA/C,IAAuD2jB,WAAW,CAAC3jB,OAAZ,KAAwB70B,SAAnF,EAA8F;EAC5F,aAAK,MAAMI,GAAX,IAAkBo4C,WAAW,CAAC3jB,OAA9B,EAAuC;EACrC,cAAIz0B,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOo4C,WAAW,CAAC3jB,OAAZ,CAAoBz0B,GAApB;EAA1B,aAAf;EACD;EACF;EACF;;EACD,gEAAcwN,YAAd,CAA2B/K,IAA3B;EACD,KAjCD;;EAmCA,SAAK41C,WAAL,GAAoBC,CAAD,IAAO;EACxB,8DAAatH,QAAb,GAAwBuH,MAAM,CAACD,CAAD,CAA9B;;EACA,UAAIA,CAAC,KAAK,CAAV,EAAa;EACXxQ,QAAAA,cAAc,CAACuJ,MAAf,GAAwB,EAAxB;EACD,OAFD,MAEO;EACL,eAAOvJ,cAAc,CAACuJ,MAAtB;EACD;EACF,KAPD;EAQA;EACJ;EACA;EACA;;;EACI,SAAKmH,oBAAL,GAA4B,CAACx4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD3C,iBAAxD;EACD,KAFD;;EAIA,SAAKy7C,oBAAL,GAA4B,CAACz4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD1C,iBAAxD;EACD,KAFD;;EAIA,SAAKy7C,oBAAL,GAA4B,CAAC14C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaK,oBAAb,CAAkCja,GAAlC,EAAuCL,KAAvC,EAA8CzC,WAA9C;EACD,OAFD,MAEO;EACLiX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kEAAd;EACD;EACF,KAND;;EAQA,SAAK2tC,mBAAL,GAA2B,CAAC34C,GAAD,EAAML,KAAN,KAAgB;EACzC,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,6EAAd;EACD;EACF,KAND;;EAQA,SAAK4tC,oBAAL,GAA4B,CAAC54C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAd;EACD;EACF,KAND;;EAQA,SAAK6tC,sBAAL,GAA8B,CAAC74C,GAAD,EAAML,KAAN,KAAgB;EAC5C,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,gFAAd;EACD;EACF,KAND;;EAQA,SAAK8tC,uBAAL,GAA+B,CAAC94C,GAAD,EAAML,KAAN,KAAgB;EAC7C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACD;EACF,KAND;;EAQA,SAAK+tC,iBAAL,GAA0B/4C,GAAD,IAAS;EAChC,WAAK4Z,OAAL,CAAakB,uBAAb,CAAqC9a,GAArC,EAA0C3C,cAA1C;EACD,KAFD;;EAIA,UAAM27C,wBAAwB,GAAG,CAACpgC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,KAA0C;EACzEH,MAAAA,uBAAuB,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,8BAAuC,IAAvC,uDAAsD,IAAtD,wBAAvB;EACD,KAFD;EAIA;EACJ;EACA;EACA;EACA;EACA;EACA;;;EACI,SAAKmgC,WAAL,GAAmB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;EACrC;EACA,UAAKD,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAvB,IAAqCC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAA/D,EAA0E;EACxEhlC,QAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD;;EACD,UAAI62B,GAAG,IAAIC,GAAX,EAAgB;EACd;EACA,YAAID,GAAG,IAAI,CAAC,EAAR,IAAcA,GAAG,GAAG,EAAxB,EAA4B;EAC1B/kC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD,SALa;;;EAOd,YAAI82B,GAAG,IAAI,CAAC,GAAR,IAAeA,GAAG,GAAG,GAAzB,EAA8B;EAC5BhlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,mDAAZ;EACA;EACD;;EACD3d,QAAAA,GAAG,CAACF,QAAJ,GAAe;EAAE40C,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAf;;EACA,gFAAuB;EAAEC,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAvB;EACD,OAbD,MAaO;EACL,YAAIl3B,SAAS,CAACq3B,WAAd,EAA2B;EACzBr3B,UAAAA,SAAS,CAACq3B,WAAV,CAAsBC,kBAAtB,CAAyCC,YAAY,CAACvD,IAAb,CAAkB,IAAlB,CAAzC,EAAkEwD,SAAlE;EACD,SAFD,MAEO;EACLtlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACD;EACF;EACF,KA1BD;;EA4BA,aAASm3B,YAAT,CAAuBpmB,QAAvB,EAAiC;EAC/B,UAAI8lB,GAAG,GAAG9lB,QAAQ,CAACsmB,MAAT,CAAgBC,QAA1B;EACA,UAAIR,GAAG,GAAG/lB,QAAQ,CAACsmB,MAAT,CAAgBE,SAA1B;EACAl1C,MAAAA,GAAG,CAACF,QAAJ,GAAe;EAAE40C,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAf;;EACA,8EAAuB;EAAEC,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAvB;EACD;;EAED,aAASM,SAAT,CAAoBzuC,KAApB,EAA2B;EACzB,cAAQA,KAAK,CAACmmC,IAAd;EACE,aAAKnmC,KAAK,CAAC6uC,iBAAX;EACE1lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,0CAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC8uC,oBAAX;EACE3lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC+uC,OAAX;EACE5lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,6CAAZ;EACA;;EACF,aAAKrX,KAAK,CAACgvC,aAAX;EACE7lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,4BAAZ;EACA;EAZJ;EAcD;;EAED,UAAM43B,GAAG,+BAAG,IAAH,aAAT;;EACAA,IAAAA,GAAG,CAACzD,MAAJ,GAAa,KAAKA,MAAlB;EACAyD,IAAAA,GAAG,CAAC3+B,KAAJ,GAAY,KAAKA,KAAjB;;EACA2+B,IAAAA,GAAG,CAACjiC,WAAJ,GAAkB,CAAC9D,UAAD,EAAa+D,YAAb,KAA8B;EAC9CD,MAAAA,WAAW,CAAC9D,UAAD,EAAa+D,YAAb,EAA2B,0DAAcoF,SAAzC,CAAX;EACD,KAFD;;EAGA48B,IAAAA,GAAG,CAACC,aAAJ,GAAoB,CAACja,OAAD,EAAUF,oBAAV,KAAmC;EACrDuG,MAAAA,YAAY,CAACvG,oBAAD,CAAZ;;EACA,WAAKnC,aAAL,CAAmBoC,cAAnB,CAAkCC,OAAlC,EAA2CF,oBAA3C;EACD,KAHD;;EAIAka,IAAAA,GAAG,CAACE,EAAJ,GAAUz6B,GAAD,IAAS;EAChB4nB,MAAAA,GAAG,CAAC5nB,GAAD,EAAM;EACPpW,QAAAA,MAAM,8BAAE,IAAF,uBADC;EAEPC,QAAAA,OAAO,8BAAE,IAAF,yBAFA;EAGPF,QAAAA,OAAO,8BAAE,IAAF,yBAHA;EAIPtJ,QAAAA,MAAM,8BAAE,IAAF;EAJC,OAAN,CAAH;EAMD,KAPD;;EAQAk6C,IAAAA,GAAG,CAACxhC,OAAJ,GAAeC,OAAD,IAAa;EACzBD,MAAAA,OAAO,CAACC,OAAD,8BAAU,IAAV,wBAAP;EACD,KAFD;;EAGAuhC,IAAAA,GAAG,CAACG,eAAJ,GAAsB,MAAM;EAC1B,aAAQ,oEAAuB,CAA/B;EACD,KAFD;;EAGAH,IAAAA,GAAG,CAACI,QAAJ,GAAgBxhC,SAAD,IAAe;EAC5BmgC,MAAAA,wBAAwB,CAAC,GAAD,EAAMngC,SAAN,CAAxB;EACD,KAFD;;EAGAohC,IAAAA,GAAG,CAACK,QAAJ,GAAe,CAACzhC,SAAD,EAAY0hC,UAAZ,KAA2B;EACxCvB,MAAAA,wBAAwB,CAAC,IAAD,EAAOngC,SAAP,EAAkB0hC,UAAlB,CAAxB;EACD,KAFD;;EAGAN,IAAAA,GAAG,CAACO,UAAJ,GAAkB3hC,SAAD,IAAe;EAC9BmgC,MAAAA,wBAAwB,CAAC,GAAD,EAAMngC,SAAN,CAAxB;EACD,KAFD;;EAGAohC,IAAAA,GAAG,CAACQ,gBAAJ,GAAwB5hC,SAAD,IAAe;EACpCnU,MAAAA,GAAG,CAACwC,WAAJ,GAAkB,EAAlB;EACA,YAAM4wB,QAAQ,GAAG30B,QAAQ,CAACqP,sBAAT,CAAgC,2BAAhC,CAAjB;;EAEA,WAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6oB,QAAQ,CAAC13B,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,cAAM0hB,OAAO,GAAGmH,QAAQ,CAAC7oB,CAAD,CAAxB;;EACA,YAAI0hB,OAAO,CAAC3tB,IAAZ,EAAkB;EAChB,gBAAMP,IAAI,GAAG;EAAEO,YAAAA,IAAI,EAAE2tB,OAAO,CAAC3tB,IAAhB;EAAsB03C,YAAAA,cAAc,EAAE/pB,OAAO,CAACgqB;EAA9C,WAAb;EACAj2C,UAAAA,GAAG,CAACwC,WAAJ,CAAgBiB,IAAhB,CAAqB1F,IAArB;EACD;EACF;;EAEDu2C,MAAAA,wBAAwB,CAACx8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAbD;;EAcAohC,IAAAA,GAAG,CAACW,qBAAJ,GAA6Bj7C,KAAD,IAAW;EACrC+E,MAAAA,GAAG,CAACwC,WAAJ,GAAkBvH,KAAlB;EACD,KAFD;;EAGAs6C,IAAAA,GAAG,CAACY,qBAAJ,GAA4B,MAAM;EAChC,aAAOn2C,GAAG,CAACwC,WAAX;EACD,KAFD;;EAGA+yC,IAAAA,GAAG,CAACa,wBAAJ,GAA+B,CAACjiC,SAAD,EAAYkiC,aAAZ,KAA8B;EAC3Dd,MAAAA,GAAG,CAACW,qBAAJ,CAA0BG,aAA1B;;EACA/B,MAAAA,wBAAwB,CAACx8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAHD;;EAIAohC,IAAAA,GAAG,CAACe,mBAAJ,GAA0B,MAAM;EAC9B,aAAOt2C,GAAG,CAAC+C,iBAAX;EACD,KAFD;;EAGAwyC,IAAAA,GAAG,CAACgB,sBAAJ,GAA8Bt7C,KAAD,IAAW;EACtC+E,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB9H,KAAxB;EACD,KAFD;;EAGAs6C,IAAAA,GAAG,CAACiB,sBAAJ,GAA8BthC,OAAD,IAAa;EACxC,UAAIA,OAAO,CAACnd,eAAD,CAAX,EAA8B;EAC5BiI,QAAAA,GAAG,CAACyC,mBAAJ,GAA0ByS,OAAO,CAACnd,eAAD,CAAjC;EACD;EACF,KAJD;;EAKA4H,IAAAA,MAAM,CAAC82C,QAAP,GAAkB92C,MAAM,CAAC+2C,QAAP,GAAkBnB,GAApC;;EAEA,+BAAI7nC,SAAS,CAACV,OAAd,wDAAI,oBAAoB,CAApB,EAAuBhY,EAA3B,EAA+B;EAAA;;EAC7B;EACA;EACA;EACAuI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,yBAA4C+W,SAAS,CAACV,OAAtD,wDAA4C,oBAAoB,CAApB,EAAuBhY,EAAnE;EACA,WAAKosB,IAAL;EACD;EACF,GA5jB4B;;;EA+jB7BA,EAAAA,IAAI,CAAEhsB,SAAF,EAAaH,MAAb,EAAqBC,YAArB,EAAmCC,KAAnC,EAA4D;EAAA,QAAlBk9B,WAAkB,uEAAJ,EAAI;;EAC9D,QAAIt4B,MAAM,CAACgV,IAAP,CAAYsjB,WAAZ,EAAyB32B,MAAzB,GAAkC,CAAtC,EAAyC;EACvC02B,MAAAA,cAAc,CAACC,WAAD,CAAd;EACD;;EACD,QAAI,oEAAuB,CAA3B,EAA8B;EAC5B;EACA;EACD;;EAED90B,IAAAA,cAAc,CAACc,YAAf,CAA4B,QAA5B,EAAsCsB,MAAM,CAACG,QAAP,CAAgBC,QAAtD;;EACA,QAAI,CAAC,0DAAc/K,EAAnB,EAAuB;EACrB,UAAI,CAACI,SAAL,EAAgB;EACd,gEAAakR,KAAb,CAAmBG,WAAnB;;EACA;EACD;;EACD,gEAAczR,EAAd,GAAmBI,SAAnB;EACAmI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,EAA4CvB,SAA5C;;EACA,8DAAamM,KAAb,CAAmB,qCAAqC,0DAAcvM,EAAtE;EACD;;EACDg4B,IAAAA,gBAAgB,6BAAC,IAAD,yBAAe,0DAAch4B,EAA7B,CAAhB;EACAwiC,IAAAA,mCAAmC,6BAAC,IAAD,wBAAnC;EACA,8DAAcngB,UAAd,GAA2B/gB,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAAhE;;EAEA,QAAIC,MAAJ,EAAY;EACV,gEAAcA,MAAd,GAAuBA,MAAvB;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,gEAAcA,YAAd,GAA6BA,YAA7B;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,gEAAcA,KAAd,GAAsBA,KAAtB;EACD;;EAED,UAAMwhD,YAAY,GAAG72C,QAAQ,CAAC6J,IAA9B;EACA,UAAMV,SAAS,GAAGF,YAAY,CAAC4tC,YAAY,CAACjhC,WAAb,EAAD,CAA9B,CAlC8D;;EAqC9D,QAAI,OAAOzM,SAAS,CAAC/K,CAAjB,KAAuB,WAAvB,IAAsC+K,SAAS,CAAC2tC,OAAV,IAAqB,GAA/D,EAAoE;EAClE;EACD;;EAED52C,IAAAA,GAAG,CAAC2C,kBAAJ,GAAyB,IAAzB;;EACA,QAAI3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,WAAKm2C,OAAL,CAAapuC,IAAb,CAAkBzD,GAAG,CAAC4C,YAAtB;EACD;;EAED;;EACA,SAAKi0C,WAAL;EACA,UAAMC,cAAc,GAAG9tB,WAAW,CAAC,MAAM;EACvC,UAAI,wDAAarnB,OAAjB,EAA0B;EACxBsnB,QAAAA,aAAa,CAAC6tB,cAAD,CAAb;;EACA,kEAAc5wC,mBAAd;EACD;EACF,KALiC,EAK/B,IAL+B,CAAlC;;EAMA,oCAAI,IAAJ,mBAAiB;EACf;EACAzH,MAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EAEA;;EACArZ,MAAAA,MAAM,CAACqZ,gBAAP,CAAwB,UAAxB,8BAAoC,IAApC;EACD,KAND,MAMO;EACL;EACAva,MAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;;EACD,sEAAqB,CAArB;EACD,GAhoB4B;EAmoB7B;;;EAmEAo1B,EAAAA,WAAW,GAAI;EACb,UAAMF,YAAY,GAAGh3C,MAAM,CAACG,QAAP,CAAgB6J,IAArC;EACA,UAAMV,SAAS,GAAGF,YAAY,CAAC4tC,YAAY,CAACjhC,WAAb,EAAD,CAA9B,CAFa;;EAIb,UAAMpb,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACA,QAAIuxC,OAAO,GAAI,OAAOz8C,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAvD;EACAla,IAAAA,GAAG,CAACka,CAAJ,GAAQ,EAAEuiC,OAAV;;EACA,8DAAc/wC,sBAAd,CAAqC1L,GAArC,EAPa;;;EAUb,QAAIyD,IAAI,GAAG,EAAX;EACA,QAAIi5C,cAAc,GAAGxtC,SAAS,CAAC/K,QAAQ,CAACw4C,QAAV,CAA9B;;EAEA,QAAIt3C,MAAM,CAACG,QAAP,CAAgBC,QAAhB,KAA6Bi3C,cAAjC,EAAiD;EAC/C,YAAME,MAAM,GAAG,GAAf;;EACA,UAAIF,cAAc,KAAK,EAAvB,EAA2B;EACzBA,QAAAA,cAAc,GAAGA,cAAc,CAACt7C,MAAf,GAAwBw7C,MAAxB,GAAiCF,cAAc,CAACr7C,SAAf,CAAyB,CAAzB,EAA4Bu7C,MAA5B,CAAjC,GAAuEF,cAAxF;EACAj5C,QAAAA,IAAI,CAACk5C,QAAL,GAAgBD,cAAhB;EACD;;EAED,UAAIG,SAAS,GAAGluC,SAAS,CAACmuC,UAAV,IAAwBnuC,SAAS,CAACouC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACz7C,MAAV,GAAmBw7C,MAAnB,GAA4BC,SAAS,CAACx7C,SAAV,CAAoB,CAApB,EAAuBu7C,MAAvB,CAA5B,GAA6DC,SAAzE;EACAp5C,QAAAA,IAAI,CAACu5C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,SAAS,GAAGtuC,SAAS,CAACuuC,UAAV,IAAwBvuC,SAAS,CAACwuC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAAC77C,MAAV,GAAmBw7C,MAAnB,GAA4BK,SAAS,CAAC57C,SAAV,CAAoB,CAApB,EAAuBu7C,MAAvB,CAA5B,GAA6DK,SAAzE;EACAx5C,QAAAA,IAAI,CAAC25C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,WAAW,GAAG1uC,SAAS,CAAC2uC,YAAV,IAA0B3uC,SAAS,CAAC4uC,aAAtD;;EACA,UAAI,OAAOF,WAAP,KAAuB,WAA3B,EAAwC;EACtCA,QAAAA,WAAW,GAAGA,WAAW,CAACj8C,MAAZ,GAAqBw7C,MAArB,GAA8BS,WAAW,CAACh8C,SAAZ,CAAsB,CAAtB,EAAyBu7C,MAAzB,CAA9B,GAAiES,WAA/E;EACA55C,QAAAA,IAAI,CAAC+5C,EAAL,GAAUH,WAAV,CAFsC;EAGvC,OAvB8C;;;EA0B/C,UAAI,OAAO1uC,SAAS,CAACwuC,WAAjB,KAAiC,WAArC,EAAkD;EAChD,cAAMM,EAAE,GAAG9uC,SAAS,CAACwuC,WAArB;;EACA,YAAIM,EAAE,CAAC5uC,KAAH,CAAS,2BAAT,CAAJ,EAA2C;EACzCpL,UAAAA,IAAI,CAACg6C,EAAL,GAAUA,EAAV,CADyC;EAE1C;EACF;EACF;;EAEDh6C,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA6C,IAAAA,IAAI,CAACi6C,GAAL,GAAWrB,YAAX;EAEA54C,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;;EACA,QAAIrC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,8DAAc4f,QAAd,CAAuBrX,IAAvB,EApDa;;;EAsDb,QAAI0zB,QAAQ,CAAC1zB,IAAI,CAAC2vC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,gFAAwB3vC,IAAxB;EACD;;EACDsP,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,8DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EAEA,QAAIyvB,QAAQ,CAAC1zB,IAAI,CAAC2vC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,WAAKhgB,KAAL,CAAWjqB,IAAX,CAAgBvK,UAAhB,EAA4B;EAAE6M,QAAAA,CAAC,EAAE;EAAL,OAA5B;EACD;;EAED,oEAAoB4wC,YAApB;EACAlpC,IAAAA,UAAU,CAAC,MAAM;EACf,UAAIspC,OAAO,IAAI,CAAf,EAAkB;EAChB;EACA;EACD;;EAED,sCAAI,IAAJ,2CAA8B;EAC5B/tB,QAAAA,WAAW,CAAC,MAAM;EAChB;EACD,SAFU,EAERnxB,8BAFQ,CAAX;EAGD;EACF,KAXS,EAWPD,yBAXO,CAAV;;EAaA;EACD;;EAgBD65C,EAAAA,wBAAwB,GAAI;EAC1B,WAAOl0C,cAAc,CAACE,wBAAf,MAA6C,KAAK+zC,qBAAzD;EACD;;EAWD;EACA,MAAI3I,aAAJ,CAAmBkI,QAAnB,EAA6B;EAC3B,SAAKnI,cAAL,CAAoB,KAAKT,kBAAzB,IAA+C4I,QAA/C;EACD;EAED;EACF;EACA;EACA;;;EA8BE;;EACA;EACF;EACA;EACA;EACA;EAEEkH,EAAAA,UAAU,CAAEC,GAAF,EAAO;EACf,QAAI,OAAOA,GAAP,KAAe,SAAnB,EAA8B;EAC5BzoC,MAAAA,OAAO,CAACnJ,KAAR,CAAc,0DAAd;EACA;EACD,KAJc;EAMf;;;EACA,QAAItG,GAAG,CAAC6C,OAAJ,KAAgBq1C,GAAhB,IAAuB,CAACA,GAA5B,EAAiC;EAC/B,gEAAchyC,mBAAd;EACD;;EACDlG,IAAAA,GAAG,CAAC6C,OAAJ,GAAcq1C,GAAd;EACD;;EAEDC,EAAAA,aAAa,GAAI;EACf,WAAO,iBAAP;EACD;;EAEDC,EAAAA,cAAc,CAAE95C,IAAF,EAAQ2wC,YAAR,EAAsB;EAClC,WAAOD,QAAQ,CAACnlB,MAAT,CAAgBvrB,IAAhB,EAAsB2wC,YAAtB,8BAAoC,IAApC,sCAAP;EACD;;EAEDoB,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,wDAAajE,QAAb,KAA0B,CAA9B,EAAiC;EAC/B,aAAO,sEAAoB+D,aAApB,CAAkCC,aAAlC,EAAiDC,aAAjD,CAAP;EACD,KAFD,MAEO;EACL,YAAMpzC,CAAC,GAAG,+BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;EACF;;EAEDyzC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,0EAAoBD,cAApB,CAAmCC,eAAnC;EACD;;EAEDC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,0EAAoBD,2BAApB,CAAgDC,QAAhD;EACD;;EAEDC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,0EAAoBC,kCAApB,CAAuDD,QAAvD;EACD;;EA14B4B;;yDAooBR;EACnB,OAAKa,WAAL,CAAiB5pC,iBAAjB;;EACA,OAAK6pC,OAAL,CAAa7pC,iBAAb;;EACA,OAAK0lB,KAAL,CAAW1lB,iBAAX;;EACA,OAAKkN,OAAL,CAAalN,iBAAb;;EACA,OAAKkxB,aAAL,CAAmBlxB,iBAAnB;EACD;;uCAEU8vB,MAAkB;EAAA,MAAZ0M,KAAY,uEAAJ,EAAI;EAC3B,MAAI6T,OAAJ;EACA,SAAO,YAAY;EACjBliB,IAAAA,YAAY,CAACkiB,OAAD,CAAZ;EACAA,IAAAA,OAAO,GAAG5qC,UAAU,CAACqqB,IAAD,EAAO0M,KAAP,CAApB;EACD,GAHD;EAID;;yDAEoB;EACnB,QAAM8T,oBAAoB,+BAAG,IAAH,wBAAkB,MAAM;EAChD,QAAI,kEAAsBx4C,QAAQ,CAAC6J,IAAnC,EAAyC;EACvC,WAAKktC,WAAL;EACD;EACF,GAJyB,CAA1B;;EAKAyB,EAAAA,oBAAoB;EACrB;;+EAE+B;EAC9B,MAAI;EACF,oCAAI,IAAJ,+CAA+B;EAC7BniB,MAAAA,YAAY,6BAAC,IAAD,8CAAZ;EACD;;EAED,UAAM+c,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,QAAI,CAACw/B,aAAL,EAAoB;EAClB,8DAAa3xC,KAAb,CAAmB,yBAAnB;;EACA;EACD;EAED;;;EACA2xC,IAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EAEA;;EACA,oFAA4BjL,UAAU,CAAC,MAAM;EAC3C,YAAM+M,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,YAAMiqB,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAxB,aAAwBA,MAAxB,uBAAwBA,MAAM,CAAEgF,aAAhC,CAAlB;EACA;;EACA,YAAM0zB,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EAEA,UAAI,CAACw/B,aAAL,EAAoB;EAClB,gEAAa3xC,KAAb,CAAmB,yBAAnB;;EACA;EACD;;EAED,UAAIshB,SAAJ,EAAe;EACb,cAAM;EAAEC,UAAAA,GAAF;EAAOC,UAAAA;EAAP,YAAiBF,SAAS,CAACG,qBAAV,EAAvB;;EACA,YAAI6wB,MAAM,CAACX,aAAa,CAACn3B,SAAf,CAAN,GAAkC,CAAlC,IAAuCm3B,aAAa,CAACn3B,SAAd,KAA4B,IAAvE,EAA6E;EAC3Em3B,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACDw6B,QAAAA,aAAa,CAAC55B,KAAd,CAAoBwJ,GAApB,aAA6BA,GAAG,GAAG,CAAnC;EACAowB,QAAAA,aAAa,CAAC55B,KAAd,CAAoB2J,IAApB,aAA8BF,KAAK,GAAG,CAAtC;EACD;EACF,KAnBqC,EAmBnCzpB,4BAnBmC,CAAtC;EAoBD,GAnCD,CAmCE,OAAOgN,KAAP,EAAc;EACd,4DAAa/E,KAAb,CAAmB,yCAAnB,EAA8D+E,KAA9D;EACD;EACF;;+CAqFe;EACd,MAAI+G,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,MAAIuI,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACAmS,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB5V,QAAtB,CAAtB;EACA4V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,4DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;yDAEoB;EACnB,SAAQ,OAAOrC,MAAM,CAAC44C,MAAd,KAAyB,WAAzB,IAAwC54C,MAAM,CAAC44C,MAAP,CAAcC,IAAd,KAAuB,YAAvE;EACD;;yDAMmBz6C,MAAM;EACxB,MAAI,KAAK0zC,wBAAL,EAAJ,EAAqC;EACnC1zC,IAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACD;EACF;;uDAckB/wB,SAAS;EAC1B;EACA,MAAIlf,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,CAAC4vC,EAAL,GAAU,EAAV;EACA,QAAMl9B,UAAU,GAAG,EAAnB;EACA1S,EAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,MAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,IAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,EAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;;EACA,MAAIwM,OAAJ,EAAa;EACX,UAAMlO,IAAI,GAAGhV,MAAM,CAACgV,IAAP,CAAYkO,OAAZ,CAAb;EACAlO,IAAAA,IAAI,CAACC,OAAL,CAAa1T,GAAG,IAAI;EAClByC,MAAAA,IAAI,CAAC4vC,EAAL,CAAQryC,GAAR,IAAe2hB,OAAO,CAAC3hB,GAAD,CAAtB;EACD,KAFD;EAGD;;EACD,MAAI0E,GAAG,CAACF,QAAR,EAAkB;EAChB/B,IAAAA,IAAI,CAAC4vC,EAAL,GAAU,EAAE,GAAG5vC,IAAI,CAAC4vC,EAAV;EAAc,SAAG3tC,GAAG,CAACF;EAArB,KAAV;EACD;;EACD/B,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,4DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,QAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,MAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,4DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;QCv4BG0L,SAAS,GAAG,IAAI+qC,SAAJ,CAAc94C,MAAM,CAAC+N,SAArB;EAElB/N,MAAM,CAAC+N,SAAP,GAAmB/N,MAAM,CAACgO,SAAP,GAAmBD,SAAtC;;;;;;;;"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index bc1fe590..bd6add75 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),vi(o,r),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},mi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},yi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n console.log('renderCustomHtml targetingMsgJson', targetingMsgJson)\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n // const { divId, preview: isPreview, url, divSelector } = display || {}\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n // const divId = targetingMsgJson.display.divId\n // const html = targetingMsgJson.display.html\n // const isPreview = targetingMsgJson.display.preview\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n // if (isPreview) {\n // renderPreviewIframe(url, divSelector, divId, html)\n // return\n // const iframe = document.createElement('iframe')\n // // iframe.src = 'https://web-push-automation.vercel.app/?region=sk1&accountId=844-R9K-896Z'\n // iframe.src = targetingMsgJson.display.url\n // iframe.width = '100%'\n // iframe.height = '500px'\n // iframe.sandbox = 'allow-scripts allow-same-origin'\n // iframe.id = 'wiz-custom-html-preview'\n // const divSelector = targetingMsgJson.display.divSelector\n // const containerElement = document.querySelector(divSelector)\n // console.log('containerElement', containerElement)\n // console.log('iframe', iframe)\n // containerElement.innerHTML = ''\n // containerElement.appendChild(iframe)\n\n // const findIframeElement = () => {\n // let count = 0\n // const intervalId = setInterval(() => {\n // const iframeElement = document.getElementById('wiz-custom-html-preview');\n // if (iframeElement && iframe && iframe.contentDocument) {\n // // Access the iframe's document and query for a div inside\n // const divInsideIframe = iframe.contentDocument.querySelector(divId);\n // processElement(iframeElement)\n\n // clearInterval(intervalId)\n // console.log('divInsideIframe', divInsideIframe);\n // } else if (++count >= 20) {\n // console.log(`No iframe element found '${ divId }'.`)\n // clearInterval(intervalId)\n // }\n // }, 500)\n // }\n // findIframeElement()\n // }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n console.log('processElement element', element)\n console.log('processElement html', html)\n if (element) {\n element.outerHTML = html\n }\n}\n\n// const renderPreviewIframe = async (url, divSelector, divId, html) => {\n// const containerElement = document.querySelector(divSelector)\n// console.log('containerElement', containerElement)\n// containerElement.style.height = 'calc(100% - 52px)'\n// if (!containerElement) {\n// console.error(`No element found for selector: ${divSelector}`)\n// return\n// }\n\n// const response = await fetch(url)\n// if (!response.ok || !response.body) {\n// return\n// }\n// const reader = response.body.getReader()\n// const decoder = new TextDecoder()\n// let htmlString = ''\n// while (true) {\n// const { done, value } = await reader.read()\n// if (done) break\n// htmlString += decoder.decode(value, { stream: true })\n// }\n// htmlString += decoder.decode()\n// const iframe = document.createElement('iframe')\n// iframe.srcdoc = htmlString\n// iframe.width = '100%'\n// iframe.height = '100%'\n// iframe.sandbox = 'allow-scripts allow-same-origin'\n// iframe.id = 'wiz-custom-html-preview'\n\n// console.log('iframe', iframe)\n\n// containerElement.innerHTML = ''\n// containerElement.appendChild(iframe)\n\n// // findIframeElement(() => {\n// // const divInsideIframe = iframe.contentDocument?.querySelector(divId);\n// // if (divInsideIframe) {\n// // processElement(divInsideIframe, html)\n// // console.log('Found div inside iframe:', divInsideIframe);\n// // } else {\n// // console.warn('No div found inside iframe.');\n// // }\n// // });\n// iframe.onload = function () {\n// console.log('iframe onload')\n// findIframeElement(divId, html, iframe)\n// }\n// }\n\n// const findIframeElement = (divId, html, iframeElement) => {\n// console.log('findIframeElement divId', divId)\n// console.log('findIframeElement html', html)\n// console.log('findIframeElement iframeElement', iframeElement)\n// let count = 0\n// const intervalId = setInterval(() => {\n// console.log('count', count)\n// if (iframeElement && iframeElement.contentDocument) {\n// const divInsideIframe = iframeElement.contentDocument?.querySelector(divId)\n// if (divInsideIframe) {\n// processElement(divInsideIframe, html)\n// clearInterval(intervalId)\n// // callback();\n// }\n// } else if (++count >= 20) {\n// clearInterval(intervalId)\n// console.warn('Iframe element not found after 20 attempts.')\n// }\n// }, 500)\n// }\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n console.log('checkCustomHtmlNativeDisplayPreview')\n // const parentWindow = window.opener\n\n // if (search === '?customHtmlPreview') {\n // // open in visual builder mode\n // logger.debug('open in visual builder mode')\n // window.addEventListener('message', handleMessageEvent, false)\n // if (parentWindow) {\n // parentWindow.postMessage({message: 'builder', originUrl: window.location.href}, '*')\n // }\n // return\n // }\n // if (!parentWindow) {\n // console.log('This tab was manually opened. Resetting window.name.')\n // window.name = '' // Reset to prevent incorrect flag detection\n // return\n // }\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n console.log('ctType', ctType)\n if (ctType) {\n const parentWindow = window.opener\n console.log('ctType', ctType)\n console.log('parentWindow', parentWindow)\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n console.log('ctCustomHtmlPreview')\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n // const parentWindowUrl = event.origin\n // if (!parentWindowUrl.includes('clevertap')) {\n // return\n // }\n const eventData = JSON.parse(event.data)\n console.log('inapp_notifs', eventData.inapp_notifs)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n // const display = inAppNotifs[0].display\n console.log('msgContent', eventData.inapp_notifs[0].msgContent)\n if (eventData && msgContent.templateType === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs[0])\n }\n console.log('event', event)\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index bd6add75..c9b70aed 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),vi(o,r),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},mi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},yi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inapp_notifs","inAppNotifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, html)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nconst processElement = (element, html) => {\n if (element) {\n element.outerHTML = html\n }\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n const eventData = JSON.parse(event.data)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n if (eventData && msgContent.templateType === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs[0])\n }\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":";;;;;;;;;;;;;;;;;;;;EAAO,MAAMA,aAAa,GAAG,oBAAtB;EACA,MAAMC,eAAe,GAAG,QAAxB;EACA,MAAMC,cAAc,GAAG,KAAvB;;;;;;;;;;;;ECAQ,MAAMC,OAAN,CAAc;EAO3BC,EAAAA,WAAW,GAAsE;EAAA,QAApE;EAAEC,MAAAA;EAAF,KAAoE,uEAA3D,EAA2D;EAAA,QAAvDC,MAAuD,uEAA9C,EAA8C;EAAA,QAA1CC,YAA0C,uEAA3BP,aAA2B;EAAA,QAAZQ,KAAY,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aALvE;EAKuE;EAAA;EAAA;EAAA,aAJjER;EAIiE;EAAA;EAAA;EAAA,aAHjE;EAGiE;EAAA;EAAA;EAAA,aAFxE;EAEwE;EAC/E,SAAKK,EAAL,GAAUA,EAAV;;EACA,QAAIC,MAAJ,EAAY;EACV,WAAKA,MAAL,GAAcA,MAAd;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,WAAKA,YAAL,GAAoBA,YAApB;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,WAAKA,KAAL,GAAaA,KAAb;EACD;EACF;;EAED,MAAIH,EAAJ,GAAU;EACR,uCAAO,IAAP;EACD;;EAED,MAAIA,EAAJ,CAAQI,SAAR,EAAmB;EACjB,gEAAkBA,SAAlB;EACD;;EAED,MAAIH,MAAJ,GAAc;EACZ,uCAAO,IAAP;EACD;;EAED,MAAIA,MAAJ,CAAYA,MAAZ,EAAoB;EAClB,0DAAeA,MAAf;EACD;;EAED,MAAII,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIH,YAAJ,GAAoB;EAClB,uCAAO,IAAP;EACD;;EAED,MAAIA,YAAJ,CAAkBA,YAAlB,EAAgC;EAC9B,sEAAqBA,YAArB;EACD;;EAED,MAAIC,KAAJ,GAAa;EACX,uCAAO,IAAP;EACD;;EAED,MAAIA,KAAJ,CAAWA,KAAX,EAAkB;EAChB,wDAAcA,KAAd;EACD;;EAED,MAAIG,iBAAJ,GAAyB;EACvB,QAAI,KAAKL,MAAT,EAAiB;EACf,uBAAU,KAAKA,MAAf,cAAyB,KAAKC,YAA9B;EACD,KAFD,MAEO;EACL,UAAI,KAAKA,YAAL,KAAsBP,aAA1B,EAAyC;EACvC,yBAAUE,cAAV,cAA4B,KAAKK,YAAjC;EACD;;EACD,aAAO,KAAKA,YAAZ;EACD;EACF;;EAED,MAAIK,aAAJ,GAAqB;EACnB,qBAAUX,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIE,WAAJ,GAAmB;EACjB,qBAAUZ,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAIG,WAAJ,GAAmB;EACjB,qBAAUb,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EAED,MAAII,QAAJ,GAAgB;EACd,qBAAUd,eAAV,eAA8B,KAAKU,iBAAnC;EACD;;EArF0B;;ECFtB,MAAMK,uBAAuB,GAAG,IAAIC,MAAJ,CAAW,qCAAX,EAAkD,GAAlD,CAAhC;EACA,MAAMC,yBAAyB,GAAG,IAAID,MAAJ,CAAW,wBAAX,EAAqC,GAArC,CAAlC;EAEA,MAAME,gBAAgB,GAAG,IAAIF,MAAJ,CAAW,IAAX,EAAiB,GAAjB,CAAzB;EACA,MAAMG,KAAK,GAAG,OAAd;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,qBAAqB,GAAG,iBAA9B;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,YAAY,GAAG,QAArB;EACA,MAAMC,gBAAgB,GAAG,WAAzB;EACA,MAAMC,aAAa,GAAG,aAAtB;;EACA,MAAMC,cAAc,GAAG,QAAvB;EACA,MAAMC,wBAAwB,GAAG,KAAK,EAAtC;;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,WAAW,GAAG,WAApB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,UAAU,GAAG,iBAAnB;EACA,MAAMC,UAAU,GAAG,UAAnB;EACA,MAAMC,YAAY,GAAG,QAArB;EAEA,MAAMC,MAAM,GAAG,QAAf;EAEA,MAAMC,OAAO,GAAG,SAAhB;EAEA,MAAMC,cAAc,GAAG,UAAvB;EACA,MAAMC,UAAU,GAAG,QAAnB;EACA,MAAMC,aAAa,GAAG,WAAtB;EACA,MAAMC,sBAAsB,GAAG,KAA/B;EACA,MAAMC,SAAS,GAAG,OAAlB;EACA,MAAMC,SAAS,GAAG,QAAlB;EACA,MAAMC,cAAc,GAAG,GAAvB;EACA,MAAMC,MAAM,GAAG,OAAf;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,QAAQ,GAAG,MAAjB;EACA,MAAMC,aAAa,GAAG,QAAQ,GAA9B;;EACA,MAAMC,SAAS,GAAG,GAAlB;;EACA,MAAMC,yBAAyB,GAAG,IAAI,EAAJ,GAAS,IAA3C;;EACA,MAAMC,8BAA8B,GAAG,IAAI,EAAJ,GAAS,IAAhD;;EACA,MAAMC,6BAA6B,GAAG,GAAtC;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,WAAW,GAAG,OAApB;EACA,MAAMC,OAAO,GAAG,SAAhB;EACA,MAAMC,mBAAmB,GAAG,qBAA5B;EACA,MAAMC,oBAAoB,GAAG,sBAA7B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;EACA,MAAMC,sBAAsB,GAAG,UAA/B;;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,iBAAiB,GAAG,OAA1B;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,WAAW,GAAG,MAApB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,cAAc,GAAG,SAAvB;EACA,MAAMC,eAAe,GAAG,mBAAxB;EACA,MAAMC,QAAQ,GAAG,YAAjB;EACA,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,SAAS,GAAG,SAAlB;EACA,MAAMC,aAAa,GAAG,IAAtB;EACA,MAAMC,mBAAmB,GAAG,OAAO,EAAP,GAAY,EAAxC;EACA,MAAMC,UAAU,GAAG,YAAnB;EACA,MAAMC,cAAc,GAAG,kBAAvB;EACA,MAAMC,4BAA4B,GAAG,8BAArC;EACA,MAAMC,eAAe,GAAG,iBAAxB;EACA,MAAMC,4BAA4B,GAAG,GAArC;EACA,MAAMC,0BAA0B,GAAG,cAAnC;EACA,MAAMC,0BAA0B,GAAG,WAAnC;EACA,MAAMC,aAAa,GAAG,oBAAtB;EAEA,MAAMC,aAAa,GAAG,CAC3B,QAD2B,EAE3B,aAF2B,EAG3B,cAH2B,EAI3B,mBAJ2B,EAK3BxB,mBAL2B,EAM3BC,oBAN2B,CAAtB;;EC9DA,MAAMwB,QAAQ,GAAIC,KAAD,IAAW;EACjC,SAAQ,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAYC,MAAtD;EACD,CAFM;EAIA,MAAMC,QAAQ,GAAIF,KAAD,IAAW;EACjC;EACA,SAAOG,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BN,KAA/B,MAA0C,iBAAjD;EACD,CAHM;EAKA,MAAMO,YAAY,GAAIP,KAAD,IAAW;EACrC,SAAO,OAAQA,KAAR,KAAmB,QAAnB,IAAgCA,KAAK,YAAYQ,IAAxD;EACD,CAFM;EAIA,MAAMC,aAAa,GAAIC,GAAD,IAAS;EACpC,OAAK,MAAMC,IAAX,IAAmBD,GAAnB,EAAwB;EACtB,QAAIA,GAAG,CAACE,cAAJ,CAAmBD,IAAnB,CAAJ,EAA8B;EAAE,aAAO,KAAP;EAAc;EAC/C;;EACD,SAAO,IAAP;EACD,CALM;EAOA,MAAME,qBAAqB,GAAIC,CAAD,IAAO;EAC1C,SAAO,CAACC,KAAK,CAACC,UAAU,CAACF,CAAD,CAAX,CAAN,IAAyBG,QAAQ,CAACH,CAAD,CAAxC;EACD,CAFM;EAIA,MAAMI,QAAQ,GAAIJ,CAAD,IAAO;EAC7B,SAAO,wBAAwBK,IAAxB,CAA6BL,CAA7B,KAAmC,OAAOA,CAAP,KAAa,QAAvD;EACD,CAFM;EAIA,MAAMM,YAAY,GAAIC,KAAD,IAAW;EACrC,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAA5B,IAAyCD,KAAK,KAAK,WAAvD,EAAoE;EAClE,WAAO,KAAP;EACD;;EACD,SAAO,IAAP;EACD,CALM;EAiBA,MAAME,sBAAsB,GAAG,CAACC,CAAD,EAAIC,MAAJ,KAAe;EACnD;EACA,MAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;EACzB,SAAK,MAAME,GAAX,IAAkBF,CAAlB,EAAqB;EACnB,UAAIA,CAAC,CAACZ,cAAF,CAAiBc,GAAjB,CAAJ,EAA2B;EACzB,cAAMC,YAAY,GAAGJ,sBAAsB,CAACC,CAAC,CAACE,GAAD,CAAF,EAASD,MAAT,CAA3C;EACA,YAAIG,YAAJ;EACAA,QAAAA,YAAY,GAAGC,QAAQ,CAACH,GAAD,EAAM3F,uBAAN,CAAvB;;EACA,YAAI6F,YAAY,CAACE,MAAb,GAAsB,IAA1B,EAAgC;EAC9BF,UAAAA,YAAY,GAAGA,YAAY,CAACG,SAAb,CAAuB,CAAvB,EAA0B,IAA1B,CAAf;EACAN,UAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBJ,YAAY,GAAG,0CAAvC;EACD;;EACD,eAAOJ,CAAC,CAACE,GAAD,CAAR;EACAF,QAAAA,CAAC,CAACI,YAAD,CAAD,GAAkBD,YAAlB;EACD;EACF;EACF,GAdD,MAcO;EACL,QAAIM,GAAJ;;EAEA,QAAIlC,QAAQ,CAACyB,CAAD,CAAZ,EAAiB;EACfS,MAAAA,GAAG,GAAGJ,QAAQ,CAACL,CAAD,EAAIvF,yBAAJ,CAAd;;EACA,UAAIgG,GAAG,CAACH,MAAJ,GAAa,IAAjB,EAAuB;EACrBG,QAAAA,GAAG,GAAGA,GAAG,CAACF,SAAJ,CAAc,CAAd,EAAiB,IAAjB,CAAN;EACAN,QAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwBC,GAAG,GAAG,0CAA9B;EACD;EACF,KAND,MAMO;EACLA,MAAAA,GAAG,GAAGT,CAAN;EACD;;EACD,WAAOS,GAAP;EACD;;EACD,SAAOT,CAAP;EACD,CA/BM;EAiCA,MAAMK,QAAQ,GAAG,CAAC7B,KAAD,EAAQkC,KAAR,KAAkB;EACxC,SAAOlC,KAAK,CAACmC,OAAN,CAAcD,KAAd,EAAqB,EAArB,CAAP;EACD,CAFM;;ECnFA,MAAME,QAAQ,GAAG,MAAM;EAC5B,QAAMC,KAAK,GAAG,IAAI7B,IAAJ,EAAd;EACA,SAAO6B,KAAK,CAACC,WAAN,KAAsB,EAAtB,GAA2BD,KAAK,CAACE,QAAN,EAA3B,GAA8C,EAA9C,GAAmDF,KAAK,CAACG,MAAN,EAA1D;EACD,CAHM;EAKA,MAAMC,MAAM,GAAG,MAAM;EAC1B,SAAOC,IAAI,CAACC,KAAL,CAAY,IAAInC,IAAJ,EAAD,CAAaoC,OAAb,KAAyB,IAApC,CAAP;EACD,CAFM;EAIA,MAAMC,iBAAiB,GAAIC,OAAD,IAAa;EAC5C,SAAQ,QAAQJ,IAAI,CAACK,KAAL,CAAWD,OAAO,CAACF,OAAR,KAAoB,IAA/B,CAAhB;EACD,CAFM;EAIA,MAAMI,OAAO,GAAIC,EAAD,IAAQ;EAC7B;EACA,MAAIC,WAAW,CAACD,EAAD,CAAf,EAAqB;EACnB,WAAO,QAAQA,EAAf;EACD;EACF,CALM;EAOA,MAAMC,WAAW,GAAIC,IAAD,IAAU;EACnC,QAAMC,OAAO,GAAG,0BAA0BC,IAA1B,CAA+BF,IAA/B,CAAhB;EACA,MAAIC,OAAO,IAAI,IAAf,EAAqB,OAAO,KAAP;EACrB,QAAME,CAAC,GAAGF,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMG,CAAC,GAAGH,OAAO,CAAC,CAAD,CAAP,GAAa,CAAvB;EACA,QAAMI,CAAC,GAAGJ,OAAO,CAAC,CAAD,CAAjB;EACA,QAAMK,YAAY,GAAG,IAAIjD,IAAJ,CAASgD,CAAT,EAAYD,CAAZ,EAAeD,CAAf,CAArB,CANmC;;EAQnC,SAAOG,YAAY,CAACC,OAAb,MAA0BJ,CAA1B,IAA+BG,YAAY,CAAClB,QAAb,MAA2BgB,CAA1D,IAA+DE,YAAY,CAACnB,WAAb,MAA8BkB,CAApG;EACD,CATM;;ECdA,MAAMG,cAAN,CAAqB;EAC1B,SAAOC,IAAP,CAAalC,GAAb,EAAkBL,KAAlB,EAAyB;EACvB,QAAI,CAACK,GAAD,IAAQ,CAACL,KAAb,EAAoB;EAClB,aAAO,KAAP;EACD;;EACD,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACC,OAAb,CAAqBrC,GAArB,EAA0B,OAAOL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC2C,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAA9D;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO6C,IAAP,CAAaxC,GAAb,EAAkB;EAChB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAIyC,IAAI,GAAG,IAAX;;EACA,QAAI,KAAKN,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAGL,YAAY,CAACM,OAAb,CAAqB1C,GAArB,CAAP;EACD;;EACD,QAAIyC,IAAI,IAAI,IAAZ,EAAkB;EAChB,UAAI;EACFA,QAAAA,IAAI,GAAGH,IAAI,CAACK,KAAL,CAAWF,IAAX,CAAP;EACD,OAFD,CAEE,OAAOG,CAAP,EAAU;EACb;;EACD,WAAOH,IAAP;EACD;;EAED,SAAOI,MAAP,CAAe7C,GAAf,EAAoB;EAClB,QAAI,CAACA,GAAL,EAAU;EACR,aAAO,KAAP;EACD;;EACD,QAAI,KAAKmC,wBAAL,EAAJ,EAAqC;EACnCC,MAAAA,YAAY,CAACU,UAAb,CAAwB9C,GAAxB;EACA,aAAO,IAAP;EACD;EACF;;EAED,SAAO+C,YAAP,CAAqBC,IAArB,EAA2BC,MAA3B,EAAmC;EACjC,QAAIC,SAAS,GAAGF,IAAI,GAAG,2CAAvB;;EAEA,QAAIC,MAAJ,EAAY;EACVC,MAAAA,SAAS,GAAGA,SAAS,GAAG,UAAZ,GAAyBD,MAAzB,GAAkC,UAA9C;EACD;;EAEDE,IAAAA,QAAQ,CAACC,MAAT,GAAkBF,SAAlB;EACD;;EAED,SAAOG,YAAP,CAAqBL,IAArB,EAA2BrD,KAA3B,EAAkC2D,OAAlC,EAA2CL,MAA3C,EAAmD;EACjD,QAAIM,OAAO,GAAG,EAAd;EACA,QAAIC,SAAS,GAAG,EAAhB;;EACA,QAAIF,OAAJ,EAAa;EACX,YAAM7B,IAAI,GAAG,IAAI3C,IAAJ,EAAb;EACA2C,MAAAA,IAAI,CAACgC,OAAL,CAAahC,IAAI,CAACP,OAAL,KAAkBoC,OAAO,GAAG,IAAzC;EAEAC,MAAAA,OAAO,GAAG,eAAe9B,IAAI,CAACiC,WAAL,EAAzB;EACD;;EAED,QAAIT,MAAJ,EAAY;EACVO,MAAAA,SAAS,GAAG,cAAcP,MAA1B;EACD;;EAEDtD,IAAAA,KAAK,GAAGgE,kBAAkB,CAAChE,KAAD,CAA1B;EAEAwD,IAAAA,QAAQ,CAACC,MAAT,GAAkBJ,IAAI,GAAG,GAAP,GAAarD,KAAb,GAAqB4D,OAArB,GAA+BC,SAA/B,GAA2C,UAA7D;EACD;;EAED,SAAOI,UAAP,CAAmBZ,IAAnB,EAAyB;EACvB,UAAMa,MAAM,GAAGb,IAAI,GAAG,GAAtB;EACA,UAAMc,EAAE,GAAGX,QAAQ,CAACC,MAAT,CAAgBW,KAAhB,CAAsB,GAAtB,CAAX;;EACA,SAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGF,EAAE,CAAC1D,MAA3B,EAAmC4D,GAAG,EAAtC,EAA0C;EACxC,UAAIC,CAAC,GAAGH,EAAE,CAACE,GAAD,CAAV;;EACA,aAAOC,CAAC,CAACC,MAAF,CAAS,CAAT,MAAgB,GAAvB,EAA4B;EAC1BD,QAAAA,CAAC,GAAGA,CAAC,CAAC5D,SAAF,CAAY,CAAZ,EAAe4D,CAAC,CAAC7D,MAAjB,CAAJ;EACD,OAJuC;;;EAMxC,UAAI6D,CAAC,CAACE,OAAF,CAAUN,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,eAAOO,kBAAkB,CAACH,CAAC,CAAC5D,SAAF,CAAYwD,MAAM,CAACzD,MAAnB,EAA2B6D,CAAC,CAAC7D,MAA7B,CAAD,CAAzB;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,SAAO+B,wBAAP,GAAmC;EACjC,WAAO,kBAAkBkC,MAAlB,IAA4BA,MAAM,CAACjC,YAAP,KAAwB,IAApD,IAA4D,OAAOiC,MAAM,CAACjC,YAAP,CAAoBC,OAA3B,KAAuC,UAA1G;EACD;;EAED,SAAOiC,gBAAP,CAAyBC,QAAzB,EAAmC5E,KAAnC,EAA0C;EACxC,QAAIA,KAAK,IAAI,IAAb,EAAmB;EACjB;EACD;;EACD,QAAI;EACF,UAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,aAAKD,IAAL,CAAUqC,QAAV,EAAoBZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAAtC;EACD,OAFD,MAEO;EACL,YAAI4E,QAAQ,KAAK3J,YAAjB,EAA+B;EAC7B,eAAKyI,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAAChE,KAAD,CAA9C,EAAuD,CAAvD,EAA0D0E,MAAM,CAACG,QAAP,CAAgBC,QAA1E;EACD,SAFD,MAEO;EACL,eAAKpB,YAAL,CAAkBkB,QAAlB,EAA4BZ,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAe5C,KAAf,CAAD,CAA9C,EAAuE,CAAvE,EAA0E0E,MAAM,CAACG,QAAP,CAAgBC,QAA1F;EACD;EACF;;EACDC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACD,KAXD,CAWE,OAAOiD,CAAP,EAAU;EACb;;EAED,SAAOgC,kBAAP,CAA2BL,QAA3B,EAAqC;EACnC,QAAI9B,IAAJ;;EACA,QAAIiC,GAAG,CAACC,WAAJ,CAAgBzF,cAAhB,CAA+BqF,QAA/B,CAAJ,EAA8C;EAC5C,aAAOG,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,CAAP;EACD;;EACD,QAAI,KAAKpC,wBAAL,EAAJ,EAAqC;EACnCM,MAAAA,IAAI,GAAG,KAAKD,IAAL,CAAU+B,QAAV,CAAP;EACD,KAFD,MAEO;EACL9B,MAAAA,IAAI,GAAG,KAAKmB,UAAL,CAAgBW,QAAhB,CAAP;EACD;;EAED,QAAI9B,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK7C,SAA1B,IAAuC,EAAE,OAAO6C,IAAI,CAACoC,IAAZ,KAAqB,UAArB,IAAmCpC,IAAI,CAACoC,IAAL,OAAgB,EAArD,CAA3C,EAAqG;EACnG,UAAIlF,KAAJ;;EACA,UAAI;EACFA,QAAAA,KAAK,GAAG2C,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC3B,IAAD,CAA7B,CAAR;EACD,OAFD,CAEE,OAAOqC,GAAP,EAAY;EACZnF,QAAAA,KAAK,GAAGyE,kBAAkB,CAAC3B,IAAD,CAA1B;EACD;;EACDiC,MAAAA,GAAG,CAACC,WAAJ,CAAgBJ,QAAhB,IAA4B5E,KAA5B;EACA,aAAOA,KAAP;EACD;EACF;;EAED,SAAOoF,iBAAP,CAA0B/B,IAA1B,EAAgCrD,KAAhC,EAAuC2D,OAAvC,EAAgDL,MAAhD,EAAwD;EACtD;EACA;EACA;EACA;EACA;EAEA,QAAIA,MAAJ,EAAY;EACV,UAAI+B,WAAW,GAAGN,GAAG,CAACM,WAAtB;;EACA,UAAIA,WAAW,IAAI,IAAnB,EAAyB;EAAE;EACzB,cAAMC,WAAW,GAAGhC,MAAM,CAACc,KAAP,CAAa,GAAb,CAApB;EACA,YAAImB,eAAe,GAAG,EAAtB;;EACA,aAAK,IAAIlB,GAAG,GAAGiB,WAAW,CAAC7E,MAAZ,GAAqB,CAApC,EAAuC4D,GAAG,IAAI,CAA9C,EAAiDA,GAAG,EAApD,EAAwD;EACtD,cAAIA,GAAG,KAAK,CAAZ,EAAe;EACbkB,YAAAA,eAAe,GAAGD,WAAW,CAACjB,GAAD,CAAX,GAAmBkB,eAArC;EACD,WAFD,MAEO;EACLA,YAAAA,eAAe,GAAG,MAAMD,WAAW,CAACjB,GAAD,CAAjB,GAAyBkB,eAA3C;EACD,WALqD;;;EAQtD,cAAI,KAAKtB,UAAL,CAAgBZ,IAAhB,CAAJ,EAA2B;EACzB;EACA,gBAAImC,cAAc,GAAG,UAAUnC,IAAV,GAAiBgB,GAAtC;EACA,iBAAKX,YAAL,CAAkB8B,cAAlB,EAAkCxF,KAAlC,EAAyC,EAAzC,EAA6CuF,eAA7C,EAHyB;;EAIzB,gBAAI,CAAC,KAAKtB,UAAL,CAAgBuB,cAAhB,CAAL,EAAsC;EAAE;EACtC;EACD,aAFD,MAEO;EAAE;EACP,mBAAKpC,YAAL,CAAkBoC,cAAlB,EAAkCD,eAAlC;EACD;EACF;;EAED,eAAK7B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC4B,eAAxC;EACA,gBAAME,UAAU,GAAG,KAAKxB,UAAL,CAAgBZ,IAAhB,CAAnB,CApBsD;;EAsBtD,cAAIoC,UAAU,IAAIzF,KAAlB,EAAyB;EACvBqF,YAAAA,WAAW,GAAGE,eAAd;EACAR,YAAAA,GAAG,CAACM,WAAJ,GAAkBA,WAAlB;EACA;EACD;EACF;EACF,OA/BD,MA+BO;EACL,aAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwC0B,WAAxC;EACD;EACF,KApCD,MAoCO;EACL,WAAK3B,YAAL,CAAkBL,IAAlB,EAAwBrD,KAAxB,EAA+B2D,OAA/B,EAAwCL,MAAxC;EACD;EACF;;EAED,SAAOoC,WAAP,CAAoBd,QAApB,EAA8B;EAC5B,UAAMe,OAAO,GAAG,KAAKV,kBAAL,CAAwBzJ,WAAxB,CAAhB;;EACA,QAAImK,OAAO,IAAI,IAAf,EAAqB;EACnB,aAAOA,OAAO,CAACf,QAAD,CAAd;EACD;EACF;;EAED,SAAOgB,WAAP,CAAoBhB,QAApB,EAA8B5E,KAA9B,EAAqC;EACnC,QAAI,KAAKwC,wBAAL,EAAJ,EAAqC;EACnC,UAAIqD,WAAW,GAAG,KAAKZ,kBAAL,CAAwBzJ,WAAxB,CAAlB;;EACA,UAAIqK,WAAW,IAAI,IAAnB,EAAyB;EACvBA,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI7F,KAAK,KAAKC,SAAd,EAAyB;EACvB,eAAO4F,WAAW,CAACjB,QAAD,CAAlB;EACD,OAFD,MAEO;EACLiB,QAAAA,WAAW,CAACjB,QAAD,CAAX,GAAwB5E,KAAxB;EACD;;EACD,WAAK2E,gBAAL,CAAsBnJ,WAAtB,EAAmCqK,WAAnC;EACD;EACF;;EAED,SAAOC,mBAAP,CAA4BlB,QAA5B,EAAsC;EACpC,UAAM5E,KAAK,GAAG,KAAK0F,WAAL,CAAiBd,QAAjB,CAAd;EACA,SAAKgB,WAAL,CAAiBhB,QAAjB,EAA2B3E,SAA3B;EACA,WAAOD,KAAP;EACD;;EAED,SAAO+F,uBAAP,GAAkC;EAChC,QAAIC,CAAC,GAAG,KAAKf,kBAAL,CAAwB/J,YAAxB,CAAR;;EACA,QAAI8K,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACD;;EACDA,IAAAA,CAAC,CAACC,IAAF,GAAS,IAAT;EACA,SAAKtB,gBAAL,CAAsBzJ,YAAtB,EAAoC8K,CAApC;EACD;;EAED,SAAOE,WAAP,CAAoBpD,IAApB,EAA0BqD,KAA1B,EAAiC/F,MAAjC,EAAyC;EACvC,QAAIgG,SAAS,GAAG,KAAKnB,kBAAL,CAAwBrJ,YAAxB,CAAhB;;EACA,QAAI,OAAOwK,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,GAAG,EAAZ;EACD;;EACDA,IAAAA,SAAS,CAACD,KAAD,CAAT,GAAmB;EAAEE,MAAAA,CAAC,EAAEvD;EAAL,KAAnB;EACA,SAAK6B,gBAAL,CAAsB/I,YAAtB,EAAoCwK,SAApC;EACAhG,IAAAA,MAAM,CAACkG,KAAP,qBAA0B1K,YAA1B,sBAAkDuK,KAAlD,iBAA8DrD,IAA9D;EACD;;EAED,SAAOyD,YAAP,CAAqBC,MAArB,EAA6BpG,MAA7B,EAAqC;EACnC,UAAMqG,SAAS,GAAG,KAAKxB,kBAAL,CAAwBrJ,YAAxB,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAlD,IAA0D,OAAOA,SAAS,CAACD,MAAD,CAAhB,KAA6B,WAA3F,EAAwG;EACtGpG,MAAAA,MAAM,CAACkG,KAAP,sBAA2BE,MAA3B,qBAA4CC,SAAS,CAACD,MAAD,CAAT,CAAkBH,CAA9D;EACA,aAAOI,SAAS,CAACD,MAAD,CAAhB;EACA,WAAK7B,gBAAL,CAAsB/I,YAAtB,EAAoC6K,SAApC;EACD;EACF;;EArOyB;EAwOrB,MAAM1B,GAAG,GAAG;EACjBC,EAAAA,WAAW,EAAE;EACX0B,IAAAA,OAAO,EAAE,IADE;EAEXC,IAAAA,KAAK,EAAE,CAFI;EAGXC,IAAAA,MAAM,EAAE;EAHG,GADI;EAMjBxK,EAAAA,SAAS,EAAE,IANM;EAOjByK,EAAAA,gBAAgB,EAAE5G,SAPD;EAQjB6G,EAAAA,eAAe,EAAE7G,SARA;EASjB8G,EAAAA,YAAY,EAAE,KATG;EAUjBC,EAAAA,cAAc,EAAE,KAVC;EAWjB3B,EAAAA,WAAW,EAAE,IAXI;EAYjB4B,EAAAA,cAAc,EAAE,IAZC;EAajBC,EAAAA,cAAc,EAAE,EAbC;EAcjBC,EAAAA,gBAAgB,EAAE,IAdD;EAejBC,EAAAA,WAAW,EAAE,CAfI;EAeD;EAChBC,EAAAA,QAAQ,EAAE;EACRC,IAAAA,mBAAmB,EAAE;EADb,GAhBO;EAkBd;EACHC,EAAAA,WAAW,EAAE,EAnBI;EAoBjBC,EAAAA,mBAAmB,EAAE,IApBJ;EAqBjBC,EAAAA,KAAK,EAAE,IArBU;EAsBjBC,EAAAA,kBAAkB,EAAE,KAtBH;EAuBjBC,EAAAA,YAAY,EAAE,EAvBG;EAwBjBC,EAAAA,OAAO,EAAE,KAxBQ;EAyBjB/C,EAAAA,QAAQ,EAAE,IAzBO;EA0BjBgD,EAAAA,kBAAkB,EAAE,KA1BH;EA2BjBC,EAAAA,iBAAiB,EAAE,IA3BF;EA4BjBC,EAAAA,cAAc,EAAE,IA5BC;EA6BjBC,EAAAA,aAAa,EAAE,EA7BE;EA8BjBC,EAAAA,UAAU,EAAE,IA9BK;EAgCjB;;EAhCiB,CAAZ;;;;;;EC3OQ,MAAMC,QAAN,CAAe;EAG5BpO,EAAAA,WAAW,CAAEqO,GAAF,EAAO;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAChB,SAAKA,GAAL,GAAWA,GAAX;EACA,QAAIC,QAAQ,GAAG9F,cAAc,CAAC2C,kBAAf,CAAkC7I,SAAlC,CAAf;;EACA,QAAIgM,QAAJ,EAAc;EACZ,YAAMC,YAAY,GAAG,EAArB;EACA,gEAAiB,EAAjB;EACAD,MAAAA,QAAQ,GAAGA,QAAQ,CAACE,KAApB;;EACA,WAAK,MAAMC,KAAX,IAAoBH,QAApB,EAA8B;EAC5B,YAAIA,QAAQ,CAAC7I,cAAT,CAAwBgJ,KAAxB,CAAJ,EAAoC;EAClCF,UAAAA,YAAY,CAACD,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAD,CAAZ,GAAmCH,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAAnC;;EACA,kEAAeC,IAAf,CAAoBJ,QAAQ,CAACG,KAAD,CAAR,CAAgB,CAAhB,CAApB;EACD;EACF;;EACD,WAAKD,KAAL,GAAaD,YAAb;EACD,KAXD,MAWO;EACL,WAAKC,KAAL,GAAa,EAAb;EACA,gEAAiB,EAAjB;EACD;EACF;;EAEDG,EAAAA,GAAG,CAAEpI,GAAF,EAAO;EACR,UAAMqI,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,QAAIqI,IAAJ,EAAU;EACR,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACA,WAAKA,KAAL,CAAWjI,GAAX,IAAkBqI,IAAlB;;EACA,8DAAeF,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACA,WAAOI,IAAP;EACD;;EAEDE,EAAAA,GAAG,CAAEvI,GAAF,EAAOL,KAAP,EAAc;EACf,UAAM0I,IAAI,GAAG,KAAKJ,KAAL,CAAWjI,GAAX,CAAb;;EACA,UAAMwI,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIH,IAAI,IAAI,IAAZ,EAAkB;EAChB,WAAKJ,KAAL,+BAAa,IAAb,wCAAoCjI,GAApC,EAAyC,KAAKiI,KAA9C;EACD,KAFD,MAEO,IAAIO,OAAO,CAACpI,MAAR,KAAmB,KAAK0H,GAA5B,EAAiC;EACtC,WAAKG,KAAL,+BAAa,IAAb,wCAAoCO,OAAO,CAAC,CAAD,CAA3C,EAAgD,KAAKP,KAArD;EACD;;EACD,SAAKA,KAAL,CAAWjI,GAAX,IAAkBL,KAAlB;;EACA,QAAI,wDAAe,0DAAiB,CAAhC,MAAuCK,GAA3C,EAAgD;EAC9C,8DAAemI,IAAf,CAAoBnI,GAApB;EACD;;EACD,SAAKsI,aAAL,CAAmB,KAAKL,KAAxB;EACD;;EAEDK,EAAAA,aAAa,CAAEL,KAAF,EAAS;EACpB,UAAMQ,UAAU,GAAG,EAAnB;;EACA,UAAMD,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,cAAMC,IAAI,GAAG,EAAb;EACAA,QAAAA,IAAI,CAACR,IAAL,CAAUK,OAAO,CAACE,KAAD,CAAjB;EACAC,QAAAA,IAAI,CAACR,IAAL,CAAUF,KAAK,CAACO,OAAO,CAACE,KAAD,CAAR,CAAf;EACAD,QAAAA,UAAU,CAACN,IAAX,CAAgBQ,IAAhB;EACD;EACF;;EACD1G,IAAAA,cAAc,CAACqC,gBAAf,CAAgCvI,SAAhC,EAA2C;EAAEkM,MAAAA,KAAK,EAAEQ;EAAT,KAA3C;EACD;;EAEDG,EAAAA,MAAM,CAAEjJ,KAAF,EAAS;EACb,QAAIA,KAAK,KAAK,IAAd,EAAoB;EAClB,aAAO,IAAP;EACD;;EACD,UAAM6I,OAAO,+BAAG,IAAH,uBAAb;;EACA,SAAK,MAAME,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,UAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,YAAI,KAAKT,KAAL,CAAWO,OAAO,CAACE,KAAD,CAAlB,MAA+B/I,KAAnC,EAA0C;EACxC,iBAAO6I,OAAO,CAACE,KAAD,CAAd;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EAEDG,EAAAA,gBAAgB,GAAI;EAClB,UAAMC,OAAO,+BAAG,IAAH,uBAAb;;EACA,QAAIA,OAAO,IAAI,IAAX,IAAmBA,OAAO,CAAC1I,MAAR,GAAiB,CAAxC,EAA2C;EACzC,aAAO0I,OAAO,CAACA,OAAO,CAAC1I,MAAR,GAAiB,CAAlB,CAAd;EACD;;EACD,WAAO,CAAC,CAAR;EACD;;EAED2I,EAAAA,UAAU,GAAI;EACZ,UAAMC,UAAU,GAAG,wDAAe5I,MAAlC;;EACA,QAAI4I,UAAJ,EAAgB;EACd,aAAO,wDAAeA,UAAU,GAAG,CAA5B,CAAP;EACD;EACF;;EA3F2B;;uDA6FThJ,KAAKhB,KAAK;EAC3B,QAAMwJ,OAAO,GAAGlG,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,6BAAe,IAAf,wBAAX,CAAhB;EACA,QAAM0G,QAAQ,GAAG,EAAjB;EACA,MAAIC,aAAJ;;EACA,OAAK,MAAMR,KAAX,IAAoBF,OAApB,EAA6B;EAC3B,QAAIA,OAAO,CAACtJ,cAAR,CAAuBwJ,KAAvB,CAAJ,EAAmC;EACjC,UAAIF,OAAO,CAACE,KAAD,CAAP,KAAmB1I,GAAvB,EAA4B;EAC1BiJ,QAAAA,QAAQ,CAACT,OAAO,CAACE,KAAD,CAAR,CAAR,GAA2B1J,GAAG,CAACwJ,OAAO,CAACE,KAAD,CAAR,CAA9B;EACD,OAFD,MAEO;EACLQ,QAAAA,aAAa,GAAGR,KAAhB;EACD;EACF;EACF;;EACDF,EAAAA,OAAO,CAACW,MAAR,CAAeD,aAAf,EAA8B,CAA9B;EACA,4DAAiB5G,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeiG,OAAf,CAAX,CAAjB;EACA,SAAOS,QAAP;EACD;;;;;;;;;;EC1GY,MAAMG,YAAN,CAAmB;EAMhC3P,EAAAA,WAAW,OAAwC;EAAA,QAAtC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBC,MAAAA,MAAnB;EAA2BC,MAAAA;EAA3B,KAAsC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EACjD,0DAAexJ,MAAf;EACA,4DAAgBsJ,OAAhB;EACA,0DAAeC,MAAf;EACA,4DAAgBC,OAAhB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEEC,EAAAA,CAAC,CAAEC,MAAF,EAAUF,OAAV,EAAmBG,MAAnB,EAA2BC,UAA3B,EAAuCC,cAAvC,EAAuD;EACtD,QAAIC,MAAM,GAAG,KAAb;EACA,QAAIC,OAAO,GAAG,KAAd,CAFsD;EAKtD;EACA;EACA;;EACA,QAAIzF,MAAM,CAAC0F,eAAX,EAA4B;EAC1B,UAAIL,MAAM,IAAKC,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAKtF,MAAM,CAAC2F,OAAnE,EAA6E;EAC3E3F,QAAAA,MAAM,CAAC0F,eAAP,GAAyB,KAAzB;EACAF,QAAAA,MAAM,GAAG,IAAT;EACD;EACF,KAbqD;;;EAgBtD,QAAI,OAAOF,UAAP,KAAsB,WAA1B,EAAuC;EACrCA,MAAAA,UAAU,GAAG,CAAb;EACD;;EAED1H,IAAAA,cAAc,CAACiE,YAAf,CAA4ByD,UAA5B,8BAAwC,IAAxC;;EAEA,QAAIA,UAAU,GAAGjF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC,EAAwC;EACtC;EACA;EACD;;EAED,QAAI,CAAC5G,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC,UAAIoD,MAAJ,EAAY;EACVK,QAAAA,OAAO,GAAG,IAAV;EACD;EACF;;EAED,QAAI,CAACpK,YAAY,CAAC,oDAAa2G,OAAd,CAAb,IAAuCqD,MAAvC,IAAiD,OAAOE,cAAP,KAA0B,SAA/E,EAA0F;EACxF,YAAMK,UAAU,GAAG,sDAAcC,sBAAd,EAAnB;EAEA;EACN;EACA;;;EACM,UAAI7F,MAAM,CAAC0F,eAAP,IAA2BE,UAAU,CAACT,CAAX,IAAiBD,OAAO,GAAGU,UAAU,CAACT,CAArE,EAA0E;EACxE;EACD;;EACD,0DAAavD,KAAb,sBAAiC,oDAAaI,OAA9C,qBAAgEoD,MAAhE;;EACA,0DAAapD,OAAb,GAAuBoD,MAAvB;;EACA,UAAI,CAAC/J,YAAY,CAAC,oDAAa2G,OAAd,CAAjB,EAAyC;EACvC;EACApE,QAAAA,cAAc,CAACwD,mBAAf,CAAmC3J,SAAnC;EACD;;EACD,UAAI2N,MAAM,IAAIxH,cAAc,CAACE,wBAAf,EAAd,EAAyD;EACvD,YAAIuC,GAAG,CAAC3I,SAAJ,IAAiB,IAArB,EAA2B;EACzB2I,UAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,cAAMmO,SAAS,GAAGlI,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAlB;EACA,YAAIuP,gBAAJ;;EACA,YAAID,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACzQ,EAAnC,EAAuC;EACrC0Q,UAAAA,gBAAgB,GAAG1F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBkC,SAAS,CAACzQ,EAA9B,CAAnB;;EACA,cAAIgQ,MAAJ,EAAY;EACV,gBAAI,CAACU,gBAAL,EAAuB;EACrBnI,cAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,IAAxD,EADqB;EAGrB;;EACA4H,cAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkB4B,SAAS,CAACzQ,EAA5B,EAAgC+P,MAAhC;EACD;EACF;EACF;;EAEDxH,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C,EAnBuD;;EAqBvD,cAAMY,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB,CAD6E;EAG7E;;EACA,gEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF;;EACDrI,MAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+C6O,MAA/C,EAAuDrN,aAAvD,EAAsEiI,MAAM,CAACG,QAAP,CAAgBC,QAAtF;EACAxC,MAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6O,MAA9C;EACD;;EAED,QAAIxH,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,4DAAcqI,aAAd,CAA4BjB,OAA5B;EACD,KAnFqD;;;EAsFtD,UAAMvK,GAAG,GAAG,sDAAckL,sBAAd,EAAZ,CAtFsD;;;EAyFtD,QAAI,OAAOlL,GAAG,CAACwK,CAAX,KAAiB,WAAjB,IAAgCxK,GAAG,CAACwK,CAAJ,IAASD,OAA7C,EAAsD;EACpDvK,MAAAA,GAAG,CAACwK,CAAJ,GAAQD,OAAR;EACAvK,MAAAA,GAAG,CAACyL,CAAJ,GAAQ1J,MAAM,EAAd,CAFoD;;EAGpD,4DAAc2J,sBAAd,CAAqC1L,GAArC;EACD,KA7FqD;;;EAgGtD,QAAIU,YAAY,CAAC,oDAAa2G,OAAd,CAAhB,EAAwC;EACtC3B,MAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD,KAlGqD;;;EAqGtD,QAAI,CAACmD,MAAM,IAAIC,OAAX,KAAuB,CAAC,sDAAca,gBAA1C,EAA4D;EAC1D,4DAAcC,mBAAd;EACD;;EAEDlG,IAAAA,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyBoD,UAAzB;EACD;;EAjI+B;;;;ECFnB,MAAMkB,aAAN,CAAoB;EAIjCpR,EAAAA,WAAW,OAAc;EAAA,QAAZ;EAAEsG,MAAAA;EAAF,KAAY;EAAA;EAAA;EAAA;EAAA;EAAA,SAFzBsG,OAEyB;EACvB,8DAAetG,MAAf;EACA,SAAKsG,OAAL,GAAe,KAAKyE,OAAL,EAAf;EACD;;EAEDA,EAAAA,OAAO,GAAI;EACT,QAAIC,IAAI,GAAG,IAAX;;EACA,QAAIrL,YAAY,CAAC,KAAK2G,OAAN,CAAhB,EAAgC;EAC9B,aAAO,KAAKA,OAAZ;EACD;;EACD,QAAIpE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMxC,KAAK,GAAGsC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAd;;EACA,UAAI8E,YAAY,CAACC,KAAD,CAAhB,EAAyB;EACvB,YAAI;EACFoL,UAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACzE,KAAD,CAA7B,CAAP;EACD,SAFD,CAEE,OAAOiD,CAAP,EAAU;EACV,kEAAaqD,KAAb,CAAmB,8DAA8DtG,KAAjF,EADU;EAGV;EACA;EACA;;;EACA,cAAIA,KAAK,CAACS,MAAN,KAAiB,EAArB,EAAyB;EACvB2K,YAAAA,IAAI,GAAGpL,KAAP;EACAsC,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C+E,KAA9C;EACD,WAHD,MAGO;EACL,oEAAaqL,KAAb,CAAmB,kBAAkBrL,KAArC;EACD;EACF,SAfsB;;;EAkBvB,YAAID,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,UAAAA,cAAc,CAAC8C,iBAAf,CAAiCnK,YAAjC,EAA+CmQ,IAA/C,EAAqD3O,aAArD,EAAoEiI,MAAM,CAACG,QAAP,CAAgBC,QAApF;EACD;EACF;EACF;;EAED,QAAI,CAAC/E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EACvBA,MAAAA,IAAI,GAAG9I,cAAc,CAAC2B,UAAf,CAA0BhJ,YAA1B,CAAP;;EACA,UAAI8E,YAAY,CAACqL,IAAD,CAAZ,KAAuBA,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAAtB,IAA2B4G,IAAI,CAAC5G,OAAL,CAAa,IAAb,MAAuB,CAAlD,IAAuD4G,IAAI,CAAC5G,OAAL,CAAa,GAAb,MAAsB,CAApG,CAAJ,EAA4G;EAC1G4G,QAAAA,IAAI,GAAG,IAAP;EACD;;EACD,UAAIrL,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB9I,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CmQ,IAA9C;EACD;EACF;;EAED,WAAOA,IAAP;EACD;;EAnDgC;;ECJ5B,MAAME,kBAAkB,GAAG,iCAA3B;EAGA,MAAMC,sBAAsB,GAAG,kBAA/B;;EACA,MAAMC,WAAW,aAAMD,sBAAN,6BAAjB;EACA,MAAME,WAAW,aAAMF,sBAAN,yCAA2DD,kBAA3D,CAAjB;EACA,MAAMI,YAAY,aAAMH,sBAAN,+GAAiID,kBAAjI,CAAlB;EACA,MAAMK,cAAc,aAAMJ,sBAAN,sDAAwED,kBAAxE,CAApB;EACA,MAAMM,aAAa,aAAML,sBAAN,qDAAuED,kBAAvE,CAAnB;EACA,MAAMO,eAAe,aAAMN,sBAAN,4EAA8FD,kBAA9F,CAArB;EACA,MAAMQ,SAAS,aAAMP,sBAAN,4CAA8DD,kBAA9D,CAAf;EACA,MAAMS,SAAS,aAAMR,sBAAN,uCAAf;EAGA,MAAMS,iBAAiB,aAAMT,sBAAN,0DAAvB;EACA,MAAMU,kBAAkB,aAAMV,sBAAN,iEAAxB;;ECVP,IAAIW,gBAAJ;;EAEO,MAAMC,oBAAoB,GAAIC,QAAD,IAAc;EAChD;EACA,MAAIvN,QAAQ,CAACuN,QAAD,CAAZ,EAAwB;EACtB,SAAK,IAAI/L,GAAT,IAAgB+L,QAAhB,EAA0B;EACxB,UAAIA,QAAQ,CAAC7M,cAAT,CAAwBc,GAAxB,CAAJ,EAAkC;EAChC,YAAIxB,QAAQ,CAACuN,QAAQ,CAAC/L,GAAD,CAAT,CAAR,IAA2BgM,KAAK,CAACC,OAAN,CAAcF,QAAQ,CAAC/L,GAAD,CAAtB,CAA/B,EAA6D;EAC3D,iBAAO,KAAP;EACD,SAFD,MAEO,IAAInB,YAAY,CAACkN,QAAQ,CAAC/L,GAAD,CAAT,CAAhB,EAAiC;EACtC+L,UAAAA,QAAQ,CAAC/L,GAAD,CAAR,GAAgBmB,iBAAiB,CAAC4K,QAAQ,CAAC/L,GAAD,CAAT,CAAjC;EACD;EACF;EACF;;EACD,WAAO,IAAP;EACD;;EACD,SAAO,KAAP;EACD,CAfM;EAiBA,MAAMkM,4BAA4B,GAAG,CAACC,UAAD,EAAapM,MAAb,KAAwB;EAClE,MAAIvB,QAAQ,CAAC2N,UAAD,CAAZ,EAA0B;EACxB,SAAK,IAAInM,GAAT,IAAgBmM,UAAhB,EAA4B;EAC1B,UAAIA,UAAU,CAACjN,cAAX,CAA0Bc,GAA1B,CAAJ,EAAoC;EAClC,YAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,cAAI,CAACgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAL,EAAqC;EACnC,mBAAO,KAAP;EACD;;EAED,cAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAAhB,GAAyB,EAA7B,EAAiC;EAC/BL,YAAAA,MAAM,CAACO,WAAP,CAAmB,GAAnB,EAAwB,kDAAkD6L,UAAU,CAACnM,GAAD,CAAV,CAAgBI,MAA1F;EACD;;EAED,eAAK,IAAIgM,OAAT,IAAoBD,UAAU,CAACnM,GAAD,CAA9B,EAAqC;EACnC,gBAAImM,UAAU,CAACnM,GAAD,CAAV,CAAgBd,cAAhB,CAA+BkN,OAA/B,CAAJ,EAA6C;EAAE;EAC7C,kBAAI,CAAC5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAT,IAAuC,CAACN,oBAAoB,CAACK,UAAU,CAACnM,GAAD,CAAV,CAAgBoM,OAAhB,CAAD,CAAhE,EAA4F;EAC1F,uBAAO,KAAP;EACD;EACF;EACF;EACF,SAhBD,MAgBO;EACL,cAAI5N,QAAQ,CAAC2N,UAAU,CAACnM,GAAD,CAAX,CAAR,IAA6BgM,KAAK,CAACC,OAAN,CAAcE,UAAU,CAACnM,GAAD,CAAxB,CAAjC,EAAiE;EAC/D,mBAAO,KAAP;EACD,WAFD,MAEO,IAAInB,YAAY,CAACsN,UAAU,CAACnM,GAAD,CAAX,CAAhB,EAAmC;EACxCmM,YAAAA,UAAU,CAACnM,GAAD,CAAV,GAAkBmB,iBAAiB,CAACgL,UAAU,CAACnM,GAAD,CAAX,CAAnC;EACD;EACF;EACF;EACF;;EAED,QAAI3B,QAAQ,CAAC8N,UAAU,CAACzR,UAAD,CAAX,CAAR,IAAoC8E,QAAQ,CAAC2M,UAAU,CAACzR,UAAD,CAAX,CAAhD,EAA0E;EACxE;EACA,YAAM2R,SAAS,GAAGF,UAAU,CAACzR,UAAD,CAAV,GAAyB,EAA3C,CAFwE;;EAIxE,UAAI,OAAOmR,gBAAP,KAA4B,WAAhC,EAA6C;EAC3CA,QAAAA,gBAAgB,GAAG5J,cAAc,CAAC2C,kBAAf,CAAkCjK,qBAAlC,CAAnB;EACD;;EACD,UAAI,OAAOkR,gBAAP,KAA4B,WAA5B,IAA2CA,gBAAgB,CAAChH,IAAjB,OAA4BwH,SAAS,CAACxH,IAAV,EAA3E,EAA6F;EAC3F;EACA9E,QAAAA,MAAM,CAACiL,KAAP,CAAa,mCAAmCmB,UAAhD;EACA,eAAO,KAAP;EACD;;EACDN,MAAAA,gBAAgB,GAAGQ,SAAnB;EACApK,MAAAA,cAAc,CAACqC,gBAAf,CAAgC3J,qBAAhC,EAAuD0R,SAAvD;EACD;;EACD,WAAO,IAAP;EACD,GA9CiE;;;EA+ClE,SAAO,KAAP;EACD,CAhDM;;;;;;;;;;;;EClBQ,MAAMC,YAAN,SAA2BN,KAA3B,CAAiC;EAM9CvS,EAAAA,WAAW,OAAgD8S,MAAhD,EAAwD;EAAA,QAAtD;EAAExM,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBmD,MAAAA;EAAnB,KAAsD;EACjE;EADiE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEjE,8DAAezM,MAAf;EACA,gEAAkBwM,MAAlB;EACA,gEAAgBlD,OAAhB;EACA,4FAAgCmD,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAgB;EAClB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CoR,SAC4C;EAD5CA,QAAAA,SAC4C;EAAA;;EACjD,gFAAwBA,SAAxB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAazB,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,2BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,gEAAkB,IAAlB;EACD;;EAoDDC,EAAAA,UAAU,CAAEC,OAAF,EAAW;EACnB,QAAI,6BAAC,IAAD,uDAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,OAAOlI,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;EACD;;EACD,QAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C;EACD;;EACD,UAAMoG,MAAM,GAAGnI,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAf;EACA,UAAME,OAAO,GAAG,EAAhB;;EACA,QAAI,OAAOD,MAAP,KAAkB,WAAtB,EAAmC;EACjCC,MAAAA,OAAO,CAACC,SAAR,GAAoB,IAAIjO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAApB;EACAC,MAAAA,OAAO,CAACE,QAAR,GAAmB,IAAIlO,IAAJ,CAAS+N,MAAM,CAAC,CAAD,CAAN,GAAY,IAArB,CAAnB;EACAC,MAAAA,OAAO,CAACG,KAAR,GAAgBJ,MAAM,CAAC,CAAD,CAAtB;EACA,aAAOC,OAAP;EACD;EACF;;EAlG6C;;yDA8B1BL,WAAW;EAC7B,MAAIT,KAAK,CAACC,OAAN,CAAcQ,SAAd,CAAJ,EAA8B;EAC5B,WAAOA,SAAS,CAACrM,MAAV,GAAmB,CAA1B,EAA6B;EAC3B,UAAI8M,SAAS,GAAGT,SAAS,CAACU,KAAV,EAAhB;;EACA,UAAI,CAAC9O,QAAQ,CAAC6O,SAAD,CAAb,EAA0B;EACxB,gEAAalC,KAAb,CAAmBI,WAAnB;;EACA;EACD;;EAED,UAAI8B,SAAS,CAAC9M,MAAV,GAAmB,IAAvB,EAA6B;EAC3B8M,QAAAA,SAAS,GAAGA,SAAS,CAAC7M,SAAV,CAAoB,CAApB,EAAuB,IAAvB,CAAZ;;EACA,gEAAaC,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,0CAA1C;EACD;;EAED,UAAI9O,aAAa,CAACgP,QAAd,CAAuBF,SAAvB,CAAJ,EAAuC;EACrC,gEAAa5M,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,oEAA1C;;EACA;EACD;;EAED,YAAMzK,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAezM,QAAQ,CAAC+M,SAAD,EAAY7S,uBAAZ,CAAvB;;EAEA,UAAIoS,SAAS,CAACrM,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,cAAM2L,QAAQ,GAAGU,SAAS,CAACU,KAAV,EAAjB;;EACA,YAAI,CAAC3O,QAAQ,CAACuN,QAAD,CAAb,EAAyB;EACvB;EACAU,UAAAA,SAAS,CAACa,OAAV,CAAkBvB,QAAlB;EACD,SAHD,MAGO;EACL;EACA,cAAImB,SAAS,KAAK,SAAlB,EAA6B;EAC3B,gBAAI,CAAChB,4BAA4B,CAACH,QAAD,8BAAW,IAAX,wBAAjC,EAA2D;EACzD,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B,4CAA9B;;EACA;EACD;EACF,WALD,MAKO;EACL,gBAAI,CAACwL,oBAAoB,CAACC,QAAD,CAAzB,EAAqC;EACnC,sEAAazL,WAAb,CAAyB,GAAzB,EAA8B4M,SAAS,GAAG,qCAA1C;;EACA;EACD;EACF;;EACDzK,UAAAA,IAAI,CAAC8K,OAAL,GAAexB,QAAf;EACD;EACF;;EAED,gEAAcyB,YAAd,CAA2B/K,IAA3B;EACD;EACF;EACF;;ECpFI,MAAMgL,YAAY,GAAIC,GAAD,IAAS;EACnC,QAAMC,SAAS,GAAG,EAAlB;EACA,QAAM3J,GAAG,GAAG0J,GAAG,CAACvJ,OAAJ,CAAY,GAAZ,CAAZ;;EAEA,MAAIH,GAAG,GAAG,CAAV,EAAa;EACX,UAAM4J,GAAG,GAAGF,GAAG,CAACrN,SAAJ,CAAc2D,GAAG,GAAG,CAApB,CAAZ;EACA,QAAI6J,KAAJ;EACA,UAAMC,EAAE,GAAG,KAAX,CAHW;;EAIX,UAAMC,MAAM,GAAG,oBAAf;;EACA,UAAMC,MAAM,GAAG,UAAUxE,CAAV,EAAa;EAC1B,UAAIyE,WAAW,GAAGzE,CAAC,CAAC/I,OAAF,CAAUqN,EAAV,EAAc,GAAd,CAAlB;;EACA,UAAI;EACFG,QAAAA,WAAW,GAAG7J,kBAAkB,CAAC6J,WAAD,CAAhC;EACD,OAFD,CAEE,OAAOrL,CAAP,EAAU;EAEX;;EACD,aAAOqL,WAAP;EACD,KARD;;EASAJ,IAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;;EACA,WAAOC,KAAP,EAAc;EACZF,MAAAA,SAAS,CAACK,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAAP,CAAT,GAA8BG,MAAM,CAACH,KAAK,CAAC,CAAD,CAAN,CAApC;EACAA,MAAAA,KAAK,GAAGE,MAAM,CAACpM,IAAP,CAAYiM,GAAZ,CAAR;EACD;EACF;;EACD,SAAOD,SAAP;EACD,CAzBM;EA2BA,MAAMO,SAAS,GAAIR,GAAD,IAAS;EAChC,MAAIA,GAAG,KAAK,EAAZ,EAAgB,OAAO,EAAP;EAChB,MAAIS,CAAC,GAAGhL,QAAQ,CAACiL,aAAT,CAAuB,GAAvB,CAAR;EACAD,EAAAA,CAAC,CAACE,IAAF,GAASX,GAAT;EACA,SAAOS,CAAC,CAAC1J,QAAT;EACD,CALM;EAOA,MAAM6J,QAAQ,GAAG,CAACZ,GAAD,EAAM/H,CAAN,EAAS4I,CAAT,KAAe;EACrC,SAAOb,GAAG,GAAG,GAAN,GAAY/H,CAAZ,GAAgB,GAAhB,GAAsBhC,kBAAkB,CAAC4K,CAAD,CAA/C;EACD,CAFM;EAIA,MAAMC,WAAW,GAAG,MAAM;EAC/B,SAAOnK,MAAM,CAACG,QAAP,CAAgBC,QAAvB;EACD,CAFM;;ECtCP;EACO,MAAMgK,qBAAqB,GAAIC,YAAD,IAAkB;EACrD,MAAIC,OAAO,GAAG,IAAIC,MAAJ,CAAW,CAAC,IAAIF,YAAY,CAACtO,MAAb,GAAsB,CAA3B,IAAgC,CAA3C,CAAd;EACA,MAAIyO,MAAM,GAAG,CAACH,YAAY,GAAGC,OAAhB,EACRlO,OADQ,CACA,KADA,EACO,GADP,EAERA,OAFQ,CAEA,IAFA,EAEM,GAFN,CAAb;EAIA,MAAIqO,OAAO,GAAGzK,MAAM,CAAC0K,IAAP,CAAYF,MAAZ,CAAd;EACA,MAAIG,aAAa,GAAG,EAApB;;EACA,OAAK,IAAIC,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACH,OAAO,CAAC1O,MAAxB,EAAgC6O,CAAC,EAAjC,EAAqC;EACnCD,IAAAA,aAAa,CAAC7G,IAAd,CAAmB2G,OAAO,CAACI,UAAR,CAAmBD,CAAnB,CAAnB;EACD;;EACD,SAAO,IAAIE,UAAJ,CAAeH,aAAf,CAAP;EACD,CAZM;EAcA,MAAMI,YAAY,GAAG,CAACC,UAAD,EAAatP,MAAb,KAAwB;EAClDA,EAAAA,MAAM,IAAI,OAAOA,MAAM,CAACkG,KAAd,KAAwB,UAAlC,IAAgDlG,MAAM,CAACkG,KAAP,CAAa,UAAUoJ,UAAvB,CAAhD;EACA,SAAOC,gBAAgB,CAACD,UAAD,CAAvB;EACD,CAHM;EAKA,MAAME,QAAQ,GAAIC,YAAD,IAAkB;EACxC,MAAIA,YAAY,IAAI,IAApB,EAA0B,OAAO,EAAP;EAC1B,MAAIP,CAAJ;EAAA,MAAOtP,KAAP;EAAA,MACI8P,kBAAkB,GAAG,EADzB;EAAA,MAEIC,0BAA0B,GAAG,EAFjC;EAAA,MAGIC,SAAS,GAAG,EAHhB;EAAA,MAIIC,UAAU,GAAG,EAJjB;EAAA,MAKIC,SAAS,GAAG,EALhB;EAAA,MAMIC,iBAAiB,GAAG,CANxB;EAAA;EAOIC,EAAAA,gBAAgB,GAAG,CAPvB;EAAA,MAQIC,eAAe,GAAG,CARtB;EAAA,MASIC,mBAAmB,GAAG,EAT1B;EAAA,MAUIC,gBAAgB,GAAG,CAVvB;EAAA,MAWIC,qBAAqB,GAAG,CAX5B;EAAA,MAYIC,EAZJ;EAAA,MAaIC,CAAC,GAAG9R,MAAM,CAAC+R,YAbf;;EAeA,OAAKF,EAAE,GAAG,CAAV,EAAaA,EAAE,GAAGZ,YAAY,CAACpP,MAA/B,EAAuCgQ,EAAE,IAAI,CAA7C,EAAgD;EAC9CT,IAAAA,SAAS,GAAGH,YAAY,CAACtL,MAAb,CAAoBkM,EAApB,CAAZ;;EACA,QAAI,CAAC3R,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDE,SAAzD,CAAL,EAA0E;EACxEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB,GAAgCI,gBAAgB,EAAhD;EACAL,MAAAA,0BAA0B,CAACC,SAAD,CAA1B,GAAwC,IAAxC;EACD;;EAEDC,IAAAA,UAAU,GAAGC,SAAS,GAAGF,SAAzB;;EACA,QAAIlR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC6Q,kBAArC,EAAyDG,UAAzD,CAAJ,EAA0E;EACxEC,MAAAA,SAAS,GAAGD,UAAZ;EACD,KAFD,MAEO;EACL,UAAInR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,YAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,gBAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;EACF;;EACDxQ,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,SAvBD,MAuBO;EACLA,UAAAA,KAAK,GAAG,CAAR;;EACA,eAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,UAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,YAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,gBAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,cAAAA,qBAAqB,GAAG,CAAxB;EACAF,cAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,cAAAA,gBAAgB,GAAG,CAAnB;EACD,aAJD,MAIO;EACLC,cAAAA,qBAAqB;EACtB;;EACDxQ,YAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,QAAAA,iBAAiB;;EACjB,YAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,UAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,UAAAA,eAAe;EAChB;;EACD,eAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,OAxDD,MAwDO;EACLlQ,QAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,aAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB,OA7EI;;;EA+ELP,MAAAA,kBAAkB,CAACG,UAAD,CAAlB,GAAiCG,gBAAgB,EAAjD;EACAF,MAAAA,SAAS,GAAGtR,MAAM,CAACoR,SAAD,CAAlB;EACD;EACF,GA7GuC;;;EAgHxC,MAAIE,SAAS,KAAK,EAAlB,EAAsB;EACpB,QAAIpR,MAAM,CAACC,SAAP,CAAiBQ,cAAjB,CAAgCN,IAAhC,CAAqC8Q,0BAArC,EAAiEG,SAAjE,CAAJ,EAAiF;EAC/E,UAAIA,SAAS,CAACX,UAAV,CAAqB,CAArB,IAA0B,GAA9B,EAAmC;EACjC,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,cAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;EACF;;EACDxQ,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;EACtBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF,OAvBD,MAuBO;EACLA,QAAAA,KAAK,GAAG,CAAR;;EACA,aAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA0BvQ,KAA7C;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAG,CAAR;EACD;;EACDA,QAAAA,KAAK,GAAGkQ,SAAS,CAACX,UAAV,CAAqB,CAArB,CAAR;;EACA,aAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBiB,UAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,cAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,YAAAA,qBAAqB,GAAG,CAAxB;EACAF,YAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,YAAAA,gBAAgB,GAAG,CAAnB;EACD,WAJD,MAIO;EACLC,YAAAA,qBAAqB;EACtB;;EACDxQ,UAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EACF;;EACDmQ,MAAAA,iBAAiB;;EACjB,UAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,QAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,QAAAA,eAAe;EAChB;;EACD,aAAON,0BAA0B,CAACG,SAAD,CAAjC;EACD,KAxDD,MAwDO;EACLlQ,MAAAA,KAAK,GAAG8P,kBAAkB,CAACI,SAAD,CAA1B;;EACA,WAAKZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,QAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,YAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,UAAAA,qBAAqB,GAAG,CAAxB;EACAF,UAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,UAAAA,gBAAgB,GAAG,CAAnB;EACD,SAJD,MAIO;EACLC,UAAAA,qBAAqB;EACtB;;EACDxQ,QAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD;EAGF;;EACDmQ,IAAAA,iBAAiB;;EACjB,QAAIA,iBAAiB,IAAI,CAAzB,EAA4B;EAC1BA,MAAAA,iBAAiB,GAAG9O,IAAI,CAACuP,GAAL,CAAS,CAAT,EAAYP,eAAZ,CAApB;EACAA,MAAAA,eAAe;EAChB;EACF,GA9LuC;;;EAiMxCrQ,EAAAA,KAAK,GAAG,CAAR;;EACA,OAAKsP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGe,eAAhB,EAAiCf,CAAC,EAAlC,EAAsC;EACpCiB,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAArB,GAA2BvQ,KAAK,GAAG,CAAtD;;EACA,QAAIwQ,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BA,MAAAA,qBAAqB,GAAG,CAAxB;EACAF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACAA,MAAAA,gBAAgB,GAAG,CAAnB;EACD,KAJD,MAIO;EACLC,MAAAA,qBAAqB;EACtB;;EACDxQ,IAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB;EACD,GA5MuC;;;EA+MxC,SAAO,IAAP,EAAa;EACXuQ,IAAAA,gBAAgB,GAAIA,gBAAgB,IAAI,CAAxC;;EACA,QAAIC,qBAAqB,IAAI,EAA7B,EAAiC;EAC/BF,MAAAA,mBAAmB,IAAII,CAAC,CAACH,gBAAD,CAAxB;EACA;EACD,KAHD,MAGOC,qBAAqB;EAC7B;;EACD,SAAOF,mBAAP;EACD,CAvNM;EAyNA,MAAMO,SAAS,GAAG,MAAM;EAC7B,MAAIxQ,GAAG,GAAG,EAAV;EACA,MAAIiP,CAAC,GAAG,CAAR;;EAEA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,IAAI,EAAjB,EAAqBA,CAAC,EAAtB,EAA0B;EACxBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGzB,MAAM,CAAC+R,YAAP,CAAoBrB,CAAC,GAAG,EAAxB,CAAZ;EACD;;EAED,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;EACvBjP,IAAAA,GAAG,GAAGA,GAAG,GAAGiP,CAAZ;EACD;;EAED,SAAOjP,GAAG,GAAG,KAAb;EACD,CAjBM;;EAmBP,MAAMyQ,OAAO,GAAGD,SAAS,EAAzB;EAgDO,MAAMlB,gBAAgB,GAAIhR,KAAD,IAAW;EACzC,MAAIA,KAAK,IAAI,IAAb,EAAmB,OAAO,EAAP;EACnB,MAAIoS,MAAM,GAAG,EAAb;EACA,MAAIC,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsBC,IAAtB,EAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,IAAxC;EACA,MAAIhC,CAAC,GAAG,CAAR;EAEA3Q,EAAAA,KAAK,GAAGiR,QAAQ,CAACjR,KAAD,CAAhB;;EAEA,SAAO2Q,CAAC,GAAG3Q,KAAK,CAAC8B,MAAN,GAAe,CAA1B,EAA6B;EAE3B,QAAI6O,CAAC,GAAG,CAAJ,IAAS,CAAb,EAAgB;EACd0B,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,KAA2B,CAAlC;EACA2B,MAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAArB,IAA0B,GAAjC;EACA,UAAIA,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAY3Q,KAAK,CAAC8B,MAAtB,EACEyQ,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiBD,CAAC,GAAG,CAAJ,GAAQ,CAAzB,KAA+B,CAAtC,CADF,KAGE4B,IAAI,GAAGK,GAAP;EACH,KAPD,MAOO;EACLP,MAAAA,IAAI,GAAGrS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;;EACA,UAAI,CAACA,CAAC,GAAG,CAAL,IAAU,CAAV,GAAc3Q,KAAK,CAAC8B,MAAxB,EAAgC;EAC9BwQ,QAAAA,IAAI,GAAGtS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,KAAiC,CAAxC;EACA4B,QAAAA,IAAI,GAAGvS,KAAK,CAAC4Q,UAAN,CAAiB,CAACD,CAAC,GAAG,CAAL,IAAU,CAA3B,IAAgC,GAAvC;EACD,OAHD,MAIE2B,IAAI,GAAGC,IAAI,GAAGK,GAAd;EACH;;EACDjC,IAAAA,CAAC,IAAI,CAAL;EAEA6B,IAAAA,IAAI,GAAGH,IAAI,IAAI,CAAf;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,CAAR,KAAc,CAAf,GAAqBC,IAAI,IAAI,CAApC;EACAI,IAAAA,IAAI,GAAI,CAACJ,IAAI,GAAG,EAAR,KAAe,CAAhB,GAAsBC,IAAI,IAAI,CAArC;EACAI,IAAAA,IAAI,GAAGJ,IAAI,GAAG,EAAd;;EAEA,QAAIxR,KAAK,CAACuR,IAAD,CAAT,EAAiB;EACfI,MAAAA,IAAI,GAAGC,IAAI,GAAG,EAAd;EACD,KAFD,MAEO,IAAI5R,KAAK,CAACwR,IAAD,CAAT,EAAiB;EACtBI,MAAAA,IAAI,GAAG,EAAP;EACD;;EAEDP,IAAAA,MAAM,GAAGA,MAAM,GACbD,OAAO,CAACvM,MAAR,CAAe4M,IAAf,CADO,GACgBL,OAAO,CAACvM,MAAR,CAAe6M,IAAf,CADhB,GAEPN,OAAO,CAACvM,MAAR,CAAe8M,IAAf,CAFO,GAEgBP,OAAO,CAACvM,MAAR,CAAe+M,IAAf,CAFzB;EAID;;EAED,SAAOP,MAAP;EACD,CA7CM;;;;;;;;;;ECzSQ,MAAMS,iBAAN,CAAwB;EAAA;EAAA,SAIrCC,iBAJqC,GAIjB,CAJiB;EAAA,SAKrCC,iBALqC,GAKjB,CALiB;EAAA;;EAuFrC;EACF;EACA;EACA;EACA;EACA;EACE,SAAOC,WAAP,CAAoB5D,GAApB,EAAyB6D,OAAzB,EAAkCC,WAAlC,EAA+C5E,OAA/C,EAAwD;EACtD,kEAAkBc,GAAlB,EAAuB,CAAvB,EAA0B6D,OAA1B,EAAmCC,WAAnC,EAAgD5E,OAAhD;EACD;;EA8BD6E,EAAAA,iBAAiB,GAAI;EACnB,SAAK1R,MAAL,CAAYkG,KAAZ,CAAkB,oBAAoB,KAAKmL,iBAA3C,EADmB;;EAInB,QAAI,KAAKA,iBAAL,GAAyB,EAA7B,EAAiC;EAC/B,WAAKrR,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,sBAAsB,KAAK0X,iBAA3B,GAA+C,iCAAlF;EACA,WAAKC,iBAAL,GAAyB3T,aAAzB,CAF+B;;EAG/B,aAAO,KAAK2T,iBAAZ;EACD;;EAED,QAAI,KAAKK,OAAL,CAAa/X,MAAb,IAAuB,IAA3B,EAAiC;EAC/B;EACA,WAAKoG,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,+BAAnC;EACA,aAAOgE,aAAP;EACD,KAJD,MAIO;EACL;EACA,YAAMiU,WAAW,GAAG,CAAC3Q,IAAI,CAACC,KAAL,CAAWD,IAAI,CAAC4Q,MAAL,KAAgB,EAA3B,IAAiC,CAAlC,IAAuC,IAA3D;EACA,WAAKP,iBAAL,IAA0BM,WAA1B;;EACA,UAAI,KAAKN,iBAAL,GAAyB1T,mBAA7B,EAAkD;EAChD,aAAKoC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,eAAO,KAAKA,iBAAZ;EACD,OAHD,MAGO;EACL,aAAKA,iBAAL,GAAyB3T,aAAzB;EACD;;EACD,WAAKqC,MAAL,CAAYkG,KAAZ,CAAkB,KAAKyL,OAAL,CAAahY,EAA/B,EAAmC,gCAAgC,KAAK2X,iBAAxE;EACA,aAAO,KAAKA,iBAAZ;EACD;EACF;;EAxJoC;;qDAiHZ3D,KAAKmE,YAAY;EACxC,MAAIA,UAAU,KAAK,IAAnB,EAAyB;EACvB,UAAMC,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAACD,UAAL,GAAkB,IAAlB;EACA,WAAOvD,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeuP,IAAf,CAAD,EAAuB,KAAK/R,MAA5B,CAAzB,CAAf;EACD;;EACD,MAAIkC,cAAc,CAACE,wBAAf,MAA6C,OAAOC,YAAY,CAACM,OAAb,CAAqBpH,UAArB,CAAP,KAA4C,WAAzF,IAAwG8G,YAAY,CAACM,OAAb,CAAqBpH,UAArB,MAAqC,IAAjJ,EAAuJ;EACrJ,WAAOgT,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAa0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeN,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAAf,CAAD,EAAgE,KAAKyE,MAArE,CAAzB,CAAf;EACD;;EACD,SAAO2N,GAAP;EACD;;yDAlB0BqE,aAAa;EACtC,MAAIC,KAAK,GAAG/P,cAAc,CAACoD,WAAf,CAA2BvJ,SAA3B,CAAZ;;EACA,MAAI,OAAOkW,KAAP,KAAiB,SAArB,EAAgC;EAC9BA,IAAAA,KAAK,GAAG,KAAR;EACD;;EACD,SAAO1D,QAAQ,CAACyD,WAAD,EAAcjW,SAAd,EAAyBkW,KAAK,GAAG,MAAH,GAAY,OAA1C,CAAf;EACD;;qEAdiC;EAChC,MAAItN,GAAG,CAACiC,cAAJ,IAAsB,CAACjH,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAnC,IAA4D,CAAChI,QAAQ,CAAC,KAAKiL,MAAL,CAAYjD,OAAb,CAAzE,EAAgG;EAC9F3B,IAAAA,GAAG,CAACiC,cAAJ,GAAqB,KAArB;EACA,WAAO,KAAP;EACD;;EACD,SAAO,KAAK2C,MAAL,CAAYjD,OAAZ,CAAoB4L,KAApB,CAA0B,CAAC,CAA3B,MAAkCpW,sBAAzC;EACD;;6CA/FoB6R,KAAKwE,OAAOX,SAASC,aAAa5E,SAAS;EAAA;;EAC9D,kCAAI,IAAJ,uDAAoC;EAClC,SAAK7M,MAAL,CAAYkG,KAAZ,CAAkB,uCAAuC,KAAKqD,MAAL,CAAYjD,OAArE;EACA;EACD,GAJ6D;EAO9D;;;EACA,MAAI,CAAC3G,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAjB,EAAwC;EACtC3B,IAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;EACD;EACD;EACJ;EACA;EACA;EACA;EACA;;;EAEI,MAAIkG,OAAO,IAAIA,OAAO,KAAKhP,UAA3B,EAAuC;EACrC;EACA,QAAI,CAAC8B,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IAAuC3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAA5F,EAAgG;EAC9F6L,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmE,KAAK0D,iBAAxE;;EACA,sEAAkB1D,GAAlB,EAAuB9N,SAAvB,EAAkC2R,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,KAAKC,iBAAL,EAHO,CAAV;EAID;EACF,GARD,MAQO;EACL,QAAI,CAAC/R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAb,IACH3B,GAAG,CAACC,WAAJ,CAAgB4B,MAAhB,GAAyB7B,GAAG,CAACC,WAAJ,CAAgB2B,KAAhB,GAAwB,CAD9C,IAEJ4L,KAAK,GAAG7V,SAFR,EAEmB;EACnB;EACE8V,MAAAA,UAAU,CAAC,MAAM;EACf,aAAKpS,MAAL,CAAYkG,KAAZ,0CAAoDyH,GAApD,sBAAmEwE,KAAnE;;EACA,sEAAkBxE,GAAlB,EAAuBwE,KAAK,GAAG,CAA/B,EAAkCX,OAAlC,EAA2CC,WAA3C;EACD,OAHS,EAGP,EAHO,CAAV;EAIA;EACD;EACF,GArC6D;EAwC9D;;;EACA,MAAI,CAACA,WAAL,EAAkB;EAChB,QAAI9R,YAAY,CAAC,KAAK4J,MAAL,CAAYjD,OAAb,CAAhB,EAAuC;EACrC;EACAqH,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,KAAKpE,MAAL,CAAYjD,OAAxB,CAAd;EACD;;EACDqH,IAAAA,GAAG,+BAAG,IAAH,sCAAyBA,GAAzB,EAA8B6D,OAA9B,CAAH;EACD,GAND,MAMO;EACLlN,IAAAA,MAAM,CAAC0F,eAAP,GAAyB,IAAzB;EACD;;EAED2D,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAewE,KAAf,CAAd,CAnD8D;;EAqD9DxE,EAAAA,GAAG,+BAAG,IAAH,0CAA2BA,GAA3B,CAAH;EACAA,EAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW,IAAI5O,IAAJ,GAAWoC,OAAX,EAAX,CAAd,CAtD8D;EAuD9D;;EACA,MAAI,sBAAAmD,MAAM,CAAC+N,SAAP,wEAAkBlT,cAAlB,CAAiC,QAAjC,4BAA8CmF,MAAM,CAACgO,SAArD,sDAA8C,kBAAkBnT,cAAlB,CAAiC,QAAjC,CAA9C,CAAJ,EAA8F;EAC5F;EACA,UAAMoT,MAAM,GAAGjO,MAAM,CAAC+N,SAAP,CAAiBE,MAAjB,IAA2BjO,MAAM,CAACgO,SAAP,CAAiBC,MAA3D;EACA5E,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,OAAN,EAAe4E,MAAf,CAAd;EACD;;EACD,MAAI5E,GAAG,CAACvJ,OAAJ,CAAY,mBAAZ,MAAqC,CAAC,CAA1C,EAA6C;EAC3CuJ,IAAAA,GAAG,GAAGA,GAAG,CAACjN,OAAJ,CAAY,mBAAZ,EAAiC,QAAjC,CAAN;EACD,GA/D6D;;;EAiE9D,MAAI8R,WAAW,GAAGpP,QAAQ,CAACqP,sBAAT,CAAgC,UAAhC,CAAlB;;EACA,SAAOD,WAAW,CAAC,CAAD,CAAX,IAAkBA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAxC,EAAoD;EAClDF,IAAAA,WAAW,CAAC,CAAD,CAAX,CAAeE,UAAf,CAA0BC,WAA1B,CAAsCH,WAAW,CAAC,CAAD,CAAjD;EACD;;EACD,QAAM/I,CAAC,GAAGrG,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAV;EACA5E,EAAAA,CAAC,CAACmJ,YAAF,CAAe,MAAf,EAAuB,iBAAvB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsBjF,GAAtB;EACAlE,EAAAA,CAAC,CAACmJ,YAAF,CAAe,OAAf,EAAwB,UAAxB;EACAnJ,EAAAA,CAAC,CAACmJ,YAAF,CAAe,KAAf,EAAsB,UAAtB;EACAnJ,EAAAA,CAAC,CAACoJ,KAAF,GAAU,IAAV;EACAzP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDtJ,CAArD;EACA,OAAKzJ,MAAL,CAAYkG,KAAZ,CAAkB,qBAAqByH,GAAvC;EACD;;EArFkByD,kBACZpR;EADYoR,kBAEZ7H;EAFY6H,kBAGZO;wBAHYP;;;wBAAAA;;;wBAAAA;;;wBAAAA;;;;ECPrB;EA+CO,MAAM4B,iBAAiB,GAAG,MAAM;EACrC,MAAIC,YAAY,GAAG,EAAnB;;EACA,MAAI/Q,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI8Q,OAAO,GAAGhR,cAAc,CAACO,IAAf,CAAoB1H,gBAApB,CAAd;;EACA,QAAImY,OAAO,IAAI,IAAf,EAAqB;EACnBA,MAAAA,OAAO,GAAG3Q,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAAC6O,OAAD,CAAlB,CAA4BxS,OAA5B,CAAoCjG,gBAApC,EAAsD,IAAtD,CAAX,CAAV;;EACA,UAAIyY,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC8T,QAAAA,YAAY,CAACE,EAAb,GAAkBD,OAAlB;EACD,OAFD,MAEO;EACLD,QAAAA,YAAY,GAAGC,OAAf;EACD;EACF,KAPD,MAOO;EACLD,MAAAA,YAAY,GAAG,EAAf;EACD;EACF;;EACD,SAAOA,YAAP;EACD,CAhBM;EAkBA,MAAMG,kBAAkB,GAAIC,WAAD,IAAiB;EACjD,MAAInR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,UAAMkR,MAAM,GAAG,EAAE,GAAGN,iBAAiB,EAAtB;EAA0B,SAAGK;EAA7B,KAAf;EACA,UAAMH,OAAO,GAAG3Q,IAAI,CAACC,SAAL,CAAe8Q,MAAf,CAAhB;EACApR,IAAAA,cAAc,CAACC,IAAf,CAAoBpH,gBAApB,EAAsC6I,kBAAkB,CAACsP,OAAD,CAAxD,EAH6C;;EAK7CK,IAAAA,wBAAwB;EACzB;EACF,CARM;;EAWA,MAAMA,wBAAwB,GAAG,MAAM;EAC5C,MAAIrR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4I,IAAI,GAAG9I,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAX;;EACA,QAAI8E,YAAY,CAACqL,IAAD,CAAhB,EAAwB;EACtB,UAAI;EACFA,QAAAA,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAP;EACA,cAAM2Y,WAAW,GAAGtR,cAAc,CAACO,IAAf,CAAoBzH,aAApB,IAAqCuH,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAArC,GAA0G,EAA9H;;EACA,YAAIgQ,IAAI,IAAI9I,cAAc,CAACE,wBAAf,EAAZ,EAAuD;EACrD,cAAIqR,YAAY,GAAG,EAAnB;EACA,cAAIP,OAAO,GAAGF,iBAAiB,EAA/B;EACAtU,UAAAA,MAAM,CAACgV,IAAP,CAAYR,OAAZ,EAAqBS,OAArB,CAA6B1T,GAAG,IAAI;EAClC,kBAAM2T,UAAU,GAAI5I,IAAI,IAAIwI,WAAR,IAAuB9U,MAAM,CAACgV,IAAP,CAAYF,WAAW,CAACxI,IAAD,CAAvB,EAA+B3K,MAAtD,IAAgEmT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAAjE,GAA2FuT,WAAW,CAACxI,IAAD,CAAX,CAAkB/K,GAAlB,CAA3F,GAAoH,EAAvI;EACA,kBAAM4T,SAAS,GAAGX,OAAO,CAACjT,GAAD,CAAP,CAAayJ,MAA/B;EACA,kBAAM9I,KAAK,GAAGD,QAAQ,EAAtB;EACA,kBAAMmT,QAAQ,GAAGZ,OAAO,CAACjT,GAAD,CAAP,CAAaW,KAAb,CAAjB;;EACA,gBAAI,OAAOiT,SAAP,KAAqB,WAAzB,EAAsC;EACpC,oBAAME,eAAe,GAAGrV,MAAM,CAACgV,IAAP,CAAYG,SAAZ,CAAxB;;EACA,mBAAK,MAAMlL,KAAX,IAAoBoL,eAApB,EAAqC;EACnC,oBAAIC,SAAS,GAAG,EAAhB;;EACA,oBAAID,eAAe,CAAC5U,cAAhB,CAA+BwJ,KAA/B,CAAJ,EAA2C;EACzC,sBAAIsL,MAAM,GAAG,CAAb;EACA,sBAAIC,MAAM,GAAG,CAAb;EACA,wBAAMC,UAAU,GAAGJ,eAAe,CAACpL,KAAD,CAAlC;;EACA,sBAAIwL,UAAU,KAAK,IAAnB,EAAyB;EACvB;EACD;;EACD,sBAAI,OAAOL,QAAP,KAAoB,WAApB,IAAmC,OAAOA,QAAQ,CAACK,UAAD,CAAf,KAAgC,WAAvE,EAAoF;EAClFF,oBAAAA,MAAM,GAAGH,QAAQ,CAACK,UAAD,CAAjB;EACD;;EACD,sBAAI,OAAON,SAAP,KAAqB,WAArB,IAAoC,OAAOA,SAAS,CAACM,UAAD,CAAhB,KAAiC,WAAzE,EAAsF;EACpFD,oBAAAA,MAAM,GAAGL,SAAS,CAACM,UAAD,CAAlB;EACD;;EACDH,kBAAAA,SAAS,GAAG,CAACG,UAAD,EAAaF,MAAb,EAAqBC,MAArB,CAAZ;EACAN,kBAAAA,UAAU,CAACO,UAAD,CAAV,GAAyBH,SAAzB;EACD;EACF;EACF;;EACDP,YAAAA,YAAY,GAAG,EAAE,GAAGA,YAAL;EAAmB,eAACxT,GAAD,GAAO2T;EAA1B,aAAf;EACD,WA5BD;EA6BAJ,UAAAA,WAAW,CAACxI,IAAD,CAAX,GAAoByI,YAApB;EACAvR,UAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF,OAtCD,CAsCE,OAAO3Q,CAAP,EAAU;EACVuR,QAAAA,OAAO,CAACnJ,KAAR,CAAc,0BAA0BpI,CAAxC;EACD;EACF;EACF;EACF,CA/CM;EAgDA,MAAMwR,mBAAmB,GAAG,MAAM;EACvC;EACA,QAAMrJ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;EAEA,MAAIqY,OAAO,GAAG,EAAd;;EACA,MAAIhR,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI4R,SAAS,GAAG,EAAhB;EACAd,IAAAA,OAAO,GAAGF,iBAAiB,EAA3B;EACA,UAAMsB,YAAY,GAAGpS,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAArB;EACA,UAAMuZ,YAAY,GAAGD,YAAY,GAAGjQ,kBAAkB,CAACiQ,YAAD,CAArB,GAAsC,IAAvE;EACA,UAAME,WAAW,GAAGD,YAAY,GAAGhS,IAAI,CAACK,KAAL,CAAW2R,YAAX,CAAH,GAA8B,IAA9D;EAEA,UAAME,WAAW,GAAI,CAAC,CAACzJ,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAFtD,GAGhBzU,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkBmI,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAMuB,WAAW,GAAI,CAAC,CAAC1J,IAAF,IACDsJ,YAAY,KAAKzU,SADhB,IAC6ByU,YAAY,KAAK,IAD9C,IAEDE,WAFC,IAEcA,WAAW,CAACxJ,IAAD,CAFzB,IAEmCwJ,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAFtD,GAGhBjW,MAAM,CAAC8N,MAAP,CAAcgI,WAAW,CAACxJ,IAAD,CAAX,CAAkB2J,EAAhC,CAHgB,GAIhB,EAJJ;EAMA,UAAM/T,KAAK,GAAGD,QAAQ,EAAtB;EACA,QAAIiU,QAAQ,GAAG,CAAf;EACA,QAAIC,QAAQ,GAAG,CAAf;;EACA,QAAI3B,OAAO,CAACC,EAAR,IAAcD,OAAO,CAACC,EAAR,CAAWvS,KAAX,CAAd,IAAmCsS,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3EF,MAAAA,QAAQ,GAAG1B,OAAO,CAACC,EAAR,CAAWvS,KAAX,EAAkBkU,EAA7B;EACD;;EACD,QAAI5B,OAAO,CAACyB,EAAR,IAAczB,OAAO,CAACyB,EAAR,CAAW/T,KAAX,CAAd,IAAmCsS,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAAlB,KAAyB,WAAhE,EAA6E;EAC3ED,MAAAA,QAAQ,GAAG3B,OAAO,CAACyB,EAAR,CAAW/T,KAAX,EAAkBkU,EAA7B;EACD;;EACDd,IAAAA,SAAS,GAAG;EACVe,MAAAA,GAAG,EAAEH,QADK;EAEVI,MAAAA,IAAI,EAAEH,QAFI;EAGVI,MAAAA,GAAG,EAAER,WAHK;EAIVS,MAAAA,KAAK,EAAER;EAJG,KAAZ;EAMA,WAAOV,SAAP;EACD;EACF,CAzCM;EA2CA,MAAMmB,cAAc,GAAG,CAACC,UAAD,WAA4B;EAAA,MAAf;EAAEpV,IAAAA;EAAF,GAAe;EACxD,MAAIqV,KAAK,GAAG,KAAZ;;EACA,MAAI5W,QAAQ,CAAC2W,UAAD,CAAZ,EAA0B;EACxB,SAAK,MAAME,UAAX,IAAyBF,UAAzB,EAAqC;EACnC,UAAIA,UAAU,CAACjW,cAAX,CAA0BmW,UAA1B,CAAJ,EAA2C;EACzCD,QAAAA,KAAK,GAAG,IAAR;EACA,YAAIE,UAAU,GAAGH,UAAU,CAACE,UAAD,CAA3B;;EAEA,YAAIC,UAAU,IAAI,IAAlB,EAAwB;EACtB,iBAAOH,UAAU,CAACE,UAAD,CAAjB;EACA;EACD;;EACD,YAAIA,UAAU,KAAK,QAAf,IAA2B,CAACC,UAAU,CAACzH,KAAX,CAAiB,oEAAjB,CAAhC,EAAwH;EACtHuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaK,YAAb;EACD;;EAED,YAAIgK,UAAU,KAAK,UAAf,IAA6B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAlC,EAA+D;EAC7DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaM,cAAb;EACD;;EAED,YAAI+J,UAAU,KAAK,SAAf,IAA4B,CAACC,UAAU,CAACzH,KAAX,CAAiB,SAAjB,CAAjC,EAA8D;EAC5DuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaO,aAAb;EACD;;EAED,YAAI8J,UAAU,KAAK,WAAf,IAA8B,CAACC,UAAU,CAACzH,KAAX,CAAiB,+BAAjB,CAAnC,EAAsF;EACpFuH,UAAAA,KAAK,GAAG,KAAR;EACArV,UAAAA,MAAM,CAACiL,KAAP,CAAaQ,eAAb;EACD;;EAED,YAAI6J,UAAU,KAAK,KAAf,IAAwBC,UAAU,IAAI,IAA1C,EAAgD;EAC9C,cAAInW,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,YAAAA,UAAU,CAACI,GAAX,GAAiB,CAACD,UAAlB;EACD,WAFD,MAEO;EACLF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaS,SAAb;EACD;EACF,SAnCwC;;;EAqCzC,YAAI4J,UAAU,KAAK,KAAnB,EAA0B;EACxB,cAAI,CAAE,CAAE,OAAD,CAAU5V,IAAV,CAAe6V,UAAf,CAAD,IAA+B,CAACA,UAAU,GAAG,EAAd,EAAkBlV,MAAlB,KAA6B,EAA9D,KAAsE,CAACvB,YAAY,CAACyW,UAAD,CAAvF,EAAqG;EACnGF,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaU,SAAb;EACD;;EAED,cAAI7M,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EAC5BH,YAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;EACF,SATD,MASO,IAAIzW,YAAY,CAACyW,UAAD,CAAhB,EAA8B;EACnCH,UAAAA,UAAU,CAACE,UAAD,CAAV,GAAyBlU,iBAAiB,CAACmU,UAAD,CAA1C;EACD;;EAED,YAAID,UAAU,KAAK,OAAf,IAA0B,CAACtW,aAAa,CAACuW,UAAD,CAA5C,EAA0D;EACxD,cAAIA,UAAU,CAAClV,MAAX,GAAoB,CAApB,IAA0BkV,UAAU,CAACpR,MAAX,CAAkB,CAAlB,MAAyB,GAAvD,EAA6D;EAAE;EAC7DoR,YAAAA,UAAU,GAAGA,UAAU,CAACjV,SAAX,CAAqB,CAArB,EAAwBiV,UAAU,CAAClV,MAAnC,CAAb;;EACA,gBAAIjB,qBAAqB,CAACmW,UAAD,CAAzB,EAAuC;EACrCH,cAAAA,UAAU,CAACK,KAAX,GAAmB,CAACF,UAApB;EACD,aAFD,MAEO;EACLF,cAAAA,KAAK,GAAG,KAAR;EACArV,cAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF,WARD,MAQO;EACLwJ,YAAAA,KAAK,GAAG,KAAR;EACArV,YAAAA,MAAM,CAACiL,KAAP,CAAaY,kBAAkB,GAAG,YAAlC;EACD;EACF;;EAED,YAAI,CAACwJ,KAAL,EAAY;EACV,iBAAOD,UAAU,CAACE,UAAD,CAAjB;EACD;EACF;EACF;EACF;;EACD,SAAOD,KAAP;EACD,CA5EM;EA8EA,MAAMK,gBAAgB,GAAIC,IAAD,IAAU;EACxC,QAAMC,WAAW,GAAG,EAApB;EACAA,EAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAAC1S,IAAxB;;EACA,MAAI0S,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACE,IAAZ,GAAmBH,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD,GALuC;;;EAOxC,MAAIgc,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,GAFM,MAEA;EACLJ,IAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;;EAED,QAAMC,mBAAmB,GAAG,UAAUC,MAAV,EAAkB;EAC5C,QAAIA,MAAM,IAAI,IAAd,EAAoB;EAClB,UAAIC,OAAO,GAAG,EAAd;EACA,UAAIC,UAAU,GAAG,EAAjB;;EAEA,WAAK,IAAIlH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgH,MAAM,CAAC7V,MAA3B,EAAmC6O,CAAC,EAApC,EAAwC;EACtC,cAAMmH,GAAG,GAAGH,MAAM,CAAChH,CAAD,CAAlB;;EACA,YAAImH,GAAG,CAAC/I,IAAJ,IAAY,IAAhB,EAAsB;EACpB,gBAAMA,IAAI,GAAG+I,GAAG,CAAC/I,IAAjB;;EACA,cAAIA,IAAI,KAAK,iBAAb,EAAgC;EAC9B,mBAAO,UAAP;EACD,WAFD,MAEO,IAAIA,IAAI,KAAK,SAAb,EAAwB;EAC7B6I,YAAAA,OAAO,GAAG,GAAV;EACD,WAFM,MAEA,IAAI7I,IAAI,KAAK,aAAb,EAA4B;EACjC8I,YAAAA,UAAU,GAAG,GAAb;EACD;EACF;EACF;;EAED,UAAID,OAAO,KAAK,GAAhB,EAAqB;EACnB,eAAO,SAAP;EACD,OAFD,MAEO,IAAIC,UAAU,KAAK,GAAnB,EAAwB;EAC7B,eAAO,QAAP;EACD;EACF;EACF,GAzBD;;EA2BA,MAAIT,IAAI,CAACW,mBAAL,IAA4B,IAAhC,EAAsC;EACpCV,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACW,mBAAL,KAA6B,SAAjC,EAA4C;EAC1CV,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EAED,QAAMF,GAAG,GAAGJ,mBAAmB,CAACN,IAAI,CAACa,SAAN,CAA/B;;EACA,MAAIH,GAAG,IAAI,IAAX,EAAiB;EACfT,IAAAA,WAAW,CAACa,SAAZ,GAAwBJ,GAAxB;EACD;;EAED,QAAMK,IAAI,GAAIf,IAAI,CAACe,IAAL,IAAa,IAAd,GAAsBf,IAAI,CAACe,IAAL,CAAUrW,MAAhC,GAAyC,CAAtD;;EACA,MAAIqW,IAAI,GAAG,CAAX,EAAc;EACZd,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD,GAFD,MAEO;EACLf,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;;EAED,MAAIhB,IAAI,CAACiB,KAAL,IAAc,IAAlB,EAAwB;EACtBhB,IAAAA,WAAW,CAACiB,KAAZ,GAAoBlB,IAAI,CAACiB,KAAzB;EACD;;EAED,MAAIjB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMC,MAAM,GAAGpB,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAf,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACwV,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,GAAwBA,MAAM,CAAC,CAAD,CAA/B,CAAzB;EACD;;EACD,SAAOnB,WAAP;EACD,CAtEM;EAwEA,MAAMqB,mBAAmB,GAAG,CAACtB,IAAD,YAAsB;EAAA,MAAf;EAAE3V,IAAAA;EAAF,GAAe;EACvD,QAAM4V,WAAW,GAAG,EAApB;;EACA,MAAID,IAAI,CAACuB,WAAL,IAAoB,IAAxB,EAA8B;EAC5BtB,IAAAA,WAAW,CAACC,IAAZ,GAAmBF,IAAI,CAACuB,WAAxB;EACD;;EACD,MAAIvB,IAAI,CAAChc,EAAL,IAAW,IAAf,EAAqB;EACnBic,IAAAA,WAAW,CAACuB,IAAZ,GAAmBxB,IAAI,CAAChc,EAAL,GAAU,EAA7B;EACD;;EAED,MAAIgc,IAAI,CAACI,MAAL,IAAe,IAAnB,EAAyB;EACvB,QAAIJ,IAAI,CAACI,MAAL,KAAgB,MAApB,EAA4B;EAC1BH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFD,MAEO,IAAIL,IAAI,CAACI,MAAL,KAAgB,QAApB,EAA8B;EACnCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD,KAFM,MAEA,IAAIL,IAAI,CAACI,MAAL,KAAgB,OAApB,EAA6B;EAClCH,MAAAA,WAAW,CAACI,MAAZ,GAAqB,GAArB;EACD;EACF;;EAED,MAAIL,IAAI,CAACyB,KAAL,IAAc,IAAlB,EAAwB;EACtB,QAAIzB,IAAI,CAACyB,KAAL,CAAWC,SAAX,KAAyB,KAA7B,EAAoC;EAClCzB,MAAAA,WAAW,CAAC0B,KAAZ,GAAoB3B,IAAI,CAACyB,KAAL,CAAWzJ,GAAX,CAAe3J,KAAf,CAAqB,KAArB,EAA4B,CAA5B,CAApB;EACD;EACF;;EAED,MAAI2R,IAAI,CAAC4B,MAAL,IAAe,IAAnB,EAAyB;EACvB,SAAK,IAAIC,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAG7B,IAAI,CAAC4B,MAAL,CAAYlX,MAA9C,EAAsDmX,QAAQ,EAA9D,EAAkE;EAChE,YAAMC,QAAQ,GAAG9B,IAAI,CAAC4B,MAAL,CAAYC,QAAZ,CAAjB;;EACA,UAAIC,QAAQ,CAACnK,IAAT,KAAkB,SAAtB,EAAiC;EAC/BsI,QAAAA,WAAW,CAACiB,KAAZ,GAAoBY,QAAQ,CAAC7X,KAA7B;EACD;EACF;EACF;;EAED,MAAI+V,IAAI,CAAC+B,aAAL,IAAsB,IAA1B,EAAgC;EAC9B9B,IAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;;EACA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,IAAI,CAAC+B,aAAL,CAAmBrX,MAAvC,EAA+C6O,CAAC,EAAhD,EAAoD;EAClD,YAAMyI,MAAM,GAAGhC,IAAI,CAAC+B,aAAL,CAAmBxI,CAAnB,CAAf;;EACA,UAAIyI,MAAM,CAACrK,IAAP,KAAgB,MAApB,EAA4B;EAC1BsI,QAAAA,WAAW,CAACe,QAAZ,GAAuB,GAAvB;EACD;EACF;EACF;;EAED,MAAIhB,IAAI,CAACmB,QAAL,IAAiB,IAArB,EAA2B;EACzB,UAAMc,QAAQ,GAAGjC,IAAI,CAACmB,QAAL,CAAc9S,KAAd,CAAoB,GAApB,CAAjB,CADyB;;EAEzB4R,IAAAA,WAAW,CAACoB,GAAZ,GAAkBzV,OAAO,CAACqW,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAtB,GAA4BA,QAAQ,CAAC,CAAD,CAArC,CAAzB;EACD;;EAED,MAAIjC,IAAI,CAACkC,kBAAL,IAA2B,IAA/B,EAAqC;EACnCjC,IAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;;EACA,QAAIZ,IAAI,CAACkC,kBAAL,KAA4B,SAAhC,EAA2C;EACzCjC,MAAAA,WAAW,CAACW,OAAZ,GAAsB,GAAtB;EACD;EACF;;EACDvW,EAAAA,MAAM,CAACkG,KAAP,CAAa,uBAAuB3D,IAAI,CAACC,SAAL,CAAeoT,WAAf,CAApC;EAEA,SAAOA,WAAP;EACD,CA1DM;EA4DA,MAAMkC,oBAAoB,GAAG,CAAC1C,UAAD,EAAa2C,QAAb,KAA0B;EAC5D,MAAI7V,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAIuC,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;;EACA,UAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,QAAAA,GAAG,CAAC8B,gBAAJ,GAAuB,EAAvB;EACD;EACF,KAN4C;;;EAS7C,QAAI2O,UAAU,CAAC4C,OAAX,IAAsB,IAA1B,EAAgC;EAC9B,YAAMtE,IAAI,GAAG0B,UAAU,CAAC4C,OAAxB;;EACA,WAAK,MAAM/X,GAAX,IAAkByT,IAAlB,EAAwB;EACtB,YAAIA,IAAI,CAACvU,cAAL,CAAoBc,GAApB,CAAJ,EAA8B;EAC5BmV,UAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkByT,IAAI,CAACzT,GAAD,CAAtB;EACD;EACF;;EACD,aAAOmV,UAAU,CAAC4C,OAAlB;EACD;;EAED,SAAK,MAAM9Y,IAAX,IAAmBkW,UAAnB,EAA+B;EAC7B,UAAIA,UAAU,CAACjW,cAAX,CAA0BD,IAA1B,CAAJ,EAAqC;EACnC,YAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCD,IAApC,KAA6C,CAAC6Y,QAAlD,EAA4D;EAC1D;EACD;;EACDpT,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBvH,IAArB,IAA6BkW,UAAU,CAAClW,IAAD,CAAvC;EACD;EACF;;EACD,QAAIyF,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAArB,IAAgC,IAApC,EAA0C;EACxC,aAAOrT,GAAG,CAAC8B,gBAAJ,CAAqBuR,OAA5B;EACD;;EACD9V,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACD;EACF,CAjCM;EAmCA,MAAMwR,WAAW,GAAG,CAAC9D,UAAD,EAAa+D,YAAb,EAA2BnR,gBAA3B,KAAgD;EACzE,MAAIoN,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,QAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,YAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,UAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,UAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,QAAAA,kBAAkB,GAAG,EAArB;EACA9E,QAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,MAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,MAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;;EACD,MAAI1O,GAAG,CAACmC,cAAJ,IAAsB,IAA1B,EAAgC;EAC9B,UAAMsR,KAAK,GAAGzT,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,CAAd;;EACA,QAAIiE,KAAK,IAAI,IAAb,EAAmB;EACjBhV,MAAAA,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,EAA+BtV,MAA/B;;EACA,UAAIsV,KAAK,KAAK,eAAd,EAA+B;EAC7B,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAnD,EAAyD;EACvDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4CvV,MAA5C;EACD;EACF,OAJD,MAIO,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF,OAJM,MAIA,IAAIsV,KAAK,KAAK,YAAd,EAA4B;EACjC,YAAIhV,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgD,IAApD,EAA0D;EACxDjV,UAAAA,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CvV,MAA7C;EACD;EACF;EACF;EACF;EACF,CAjCM;EAmCA,MAAMwV,GAAG,GAAIC,OAAD,IAAa;EAC9B;EACA,MAAIA,OAAO,CAACzG,UAAR,IAAsB,IAAtB,IAA8ByG,OAAO,CAACzG,UAA1C,EAAsD;EACpDsC,IAAAA,OAAO,CAAClO,KAAR,CAAc,6BAAd,EAA6CqS,OAA7C;EACA,WAAO,IAAP;EACD;;EAED,QAAMC,QAAQ,GAAGD,OAAO,CAACrc,MAAD,CAAP,KAAoB,IAArC;;EAEA,MAAIgG,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C;EACA,QAAI;EACF,UAAIqW,cAAc,GAAGvW,cAAc,CAAC2C,kBAAf,CAAkCtJ,UAAlC,CAArB;;EACA,UAAIkd,cAAc,IAAI,IAAlB,IAA0BD,QAA9B,EAAwC;EACtCC,QAAAA,cAAc,GAAG,EAAjB;;EACA,aAAK,MAAMxY,GAAX,IAAkBsY,OAAlB,EAA2B;EACzB,cAAIA,OAAO,CAACpZ,cAAR,CAAuBc,GAAvB,CAAJ,EAAiC;EAC/B,gBAAIsY,OAAO,CAACtY,GAAD,CAAP,KAAiB,CAAC,CAAtB,EAAyB;EACvB,qBAAOwY,cAAc,CAACxY,GAAD,CAArB;EACD,aAFD,MAEO;EACLwY,cAAAA,cAAc,CAACxY,GAAD,CAAd,GAAsBsY,OAAO,CAACtY,GAAD,CAA7B;EACD;EACF;EACF;;EACDiC,QAAAA,cAAc,CAACqC,gBAAf,CAAgChJ,UAAhC,EAA4Ckd,cAA5C;EACD;EACF,KAfD,CAeE,OAAO5V,CAAP,EAAU;EACVuR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAA+BpI,CAA7C;EACD;EACF;EACF,CA9BM;EA0EA,MAAM6V,OAAO,GAAG,CAACC,OAAD,EAAU3Y,MAAV,KAAqB;EAC1C,MAAI1B,QAAQ,CAACqa,OAAD,CAAR,IAAqBlZ,QAAQ,CAACkZ,OAAD,CAAjC,EAA4C;EAC1C,WAAO,QAAQA,OAAf;EACD;;EACD3Y,EAAAA,MAAM,CAACiL,KAAP,CAAaW,iBAAb;EACD,CALM;EAMA,MAAMgN,uBAAuB,GAAG,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,EAAuCpH,OAAvC,EAAgD3R,MAAhD,KAA2D;EAChG,QAAMgZ,aAAa,GAAGtL,YAAY,CAACjJ,QAAQ,CAAC6J,IAAV,CAAlC,CADgG;;EAEhG,QAAM2K,cAAc,GAAGD,aAAa,CAACnW,CAArC;EACA,QAAMqW,mBAAmB,GAAGF,aAAa,CAACG,CAA1C;EACA,QAAMC,QAAQ,GAAGJ,aAAa,CAACK,SAA/B;;EAEA,MAAI,OAAOJ,cAAP,KAA0B,WAA9B,EAA2C;EACzC,UAAMvW,IAAI,GAAG,EAAb;EACAA,IAAAA,IAAI,CAAC/I,EAAL,GAAUgY,OAAO,CAAChY,EAAlB,CAFyC;;EAGzC+I,IAAAA,IAAI,CAACyE,WAAL,GAAmBxC,GAAG,CAACwC,WAAvB,CAHyC;;EAKzC,QAAIxC,GAAG,CAACyC,mBAAR,EAA6B;EAC3B1E,MAAAA,IAAI,CAAChG,eAAD,CAAJ,GAAwBiI,GAAG,CAACyC,mBAA5B;EACD;;EAED,QAAIuG,GAAG,GAAGgE,OAAO,CAACtX,QAAlB;;EACA,QAAI0e,WAAJ,EAAiB;EACfpL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,aAAN,EAAqBoL,WAArB,CAAd;EACD;;EACD,QAAID,SAAJ,EAAe;EACbnL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,SAAN,EAAiBmL,SAAjB,CAAd;EACD;;EACDnL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWsL,cAAX,CAAd;EACAtL,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAW0B,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,EAAuB1C,MAAvB,CAAvB,CAAd;;EACA,QAAIkZ,mBAAJ,EAAyB;EACvBvL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,GAAN,EAAWuL,mBAAX,CAAd;EACD;;EAED,QAAIL,YAAY,KAAK,IAArB,EAA2B;EACzBlL,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,KAAN,EAAakL,YAAb,CAAd;EACD;;EAED,QAAIO,QAAJ,EAAc;EACZzU,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB0R,QAAQ,KAAK3d,MAArC;EACAkS,MAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,WAAN,EAAmByL,QAAnB,CAAd;EACD;;EACDhI,IAAAA,iBAAiB,CAACG,WAAlB,CAA8B5D,GAA9B;EACD;EACF,CAtCM;;;;;;;;;;;;;;ECvfQ,MAAM2L,cAAN,SAA6BrN,KAA7B,CAAmC;EAOhDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXsJ,MAAAA,OAFW;EAGXqI,MAAAA,OAHW;EAIXlF,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,8DAAezM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,4DAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACA,gGAAgCC,uBAAhC;EACD;;EAEDrE,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5Cie,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,oFAA0BA,WAA1B;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAatO,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAED0B,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAED6M,EAAAA,YAAY,CAAEC,QAAF,EAAY;EACtB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI9U,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC,aAAO9B,GAAG,CAAC8B,gBAAJ,CAAqBgT,QAArB,CAAP;EACD;EACF;;EAsDD;EACF;EACA;EACA;EACA;EACA;EACA;EACEC,EAAAA,8BAA8B,CAAEzZ,GAAF,EAAOL,KAAP,EAAc+Z,OAAd,EAAuB;EAAA;;EACnD;EACA,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAIsJ,GAAG,CAAC8B,gBAAJ,IAAwB,IAAxB,IAAgC,2BAAC9B,GAAG,CAAC8B,gBAAL,0DAAC,sBAAsBtH,cAAtB,CAAqCc,GAArC,CAAD,CAApC,EAAgF;EAC9E;EACAmU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,qEAAd;EACD,KAHD,MAGO,IAAI,CAACrL,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA3B,IAAuCA,KAAK,IAAI,CAApD,EAAuD;EAC5DwU,MAAAA,OAAO,CAACnJ,KAAR,CAAc,yCAAd;EACD,KAFM,MAEA;EACL;EACA,UAAI0O,OAAO,KAAK1c,iBAAhB,EAAmC;EACjC0H,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD,OAFD,MAEO;EACL+E,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4B0E,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4BL,KAAxD;EACD;;EACDsC,MAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C,EAPK;;EAUL,UAAI/D,IAAI,GAAG,EAAX;EACA,YAAM0S,UAAU,GAAG,EAAnB;EACA1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA8H,MAAAA,UAAU,CAACnV,GAAD,CAAV,GAAkB;EAAE,SAAC0Z,OAAD,GAAW/Z;EAAb,OAAlB;;EACA,UAAIwV,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,QAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EAEA,gEAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,YAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,gEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEuT,EAAAA,oBAAoB,CAAEja,GAAF,EAAOka,QAAP,EAAiBR,OAAjB,EAA0B;EAC5C,UAAMS,KAAK,GAAG,EAAd;;EACA,SAAK,IAAIlL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiL,QAAQ,CAAC9Z,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,UAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAvB,CAAxC,EAAqE;EACnEkL,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAnB;EACD,OAFD,MAEO,IAAI,OAAOiL,QAAQ,CAACjL,CAAD,CAAf,KAAuB,QAAvB,IAAmC,CAACkL,KAAK,CAAC/M,QAAN,CAAe8M,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAf,CAAxC,EAAmF;EACxFD,QAAAA,KAAK,CAAChS,IAAN,CAAW+R,QAAQ,CAACjL,CAAD,CAAR,CAAYmL,WAAZ,EAAX;EACD,OAFM,MAEA;EACLjG,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kDAAd;EACD;EACF;;EACD,QAAItG,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAAA;;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,4BAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB,yEAAuE,EAAvE;EACD;;EACDsJ,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqBxG,GAArB,IAA4Bma,KAA5B;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBra,GAAxB,EAA6Bka,QAA7B,EAAuCR,OAAvC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,oBAAoB,CAAEC,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC/C,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,UAAMqf,aAAa,GAAG/V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAtB;EACA,UAAMJ,KAAK,GAAGnO,KAAK,CAACC,OAAN,CAAcwO,aAAd,IAA+BA,aAA/B,GAAgDA,aAAa,IAAI,IAAjB,GAAwB,CAACA,aAAD,CAAxB,GAA0C,EAAxG;;EAEA,UAAMC,QAAQ,GAAI/a,KAAD,IAAW;EAC1B,YAAMgb,eAAe,GAAG,OAAOhb,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACya,WAAN,EAA5D;;EACA,UAAI,CAACD,KAAK,CAAC/M,QAAN,CAAeuN,eAAf,CAAL,EAAsC;EACpCR,QAAAA,KAAK,CAAChS,IAAN,CAAWwS,eAAX;EACD;EACF,KALD;;EAOA,QAAI3O,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgB/T,KAAK,IAAI;EACvB,YAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D+a,UAAAA,QAAQ,CAAC/a,KAAD,CAAR;EACD,SAFD,MAEO;EACL,kEAAaqL,KAAb,CAAmB,kDAAnB;EACD;EACF,OAND;EAOD,KARD,MAQO,IAAI,OAAOwP,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEE,MAAAA,QAAQ,CAACF,OAAD,CAAR;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,wBAAnB;;EACA;EACD;;EAEDtG,IAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,IAAgCJ,KAAhC;EACAlY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEkB,EAAAA,uBAAuB,CAAEL,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAClD,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,KAAgD,EAAvE;EACD;;EAED,QAAI,CAACsJ,GAAG,CAAC8B,gBAAJ,CAAqBtH,cAArB,CAAoCqb,OAApC,CAAL,EAAmD;EACjD,8DAAavP,KAAb,wBAAmCuP,OAAnC;;EACA;EACD;;EAED,UAAMM,WAAW,GAAIlb,KAAD,IAAW;EAC7B,YAAM+I,KAAK,GAAGhE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpW,OAA9B,CAAsCxE,KAAtC,CAAd;;EACA,UAAI+I,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChBhE,QAAAA,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8BpR,MAA9B,CAAqCT,KAArC,EAA4C,CAA5C;EACD;EACF,KALD;;EAOA,QAAIsD,KAAK,CAACC,OAAN,CAAcuO,OAAd,CAAJ,EAA4B;EAC1BA,MAAAA,OAAO,CAAC9G,OAAR,CAAgBmH,WAAhB;EACD,KAFD,MAEO,IAAI,OAAOL,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;EACrEK,MAAAA,WAAW,CAACL,OAAD,CAAX;EACD,KAFM,MAEA;EACL,8DAAaxP,KAAb,CAAmB,0BAAnB;;EACA;EACD,KAxBiD;;;EA2BlD,QAAItG,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,EAA8Bna,MAA9B,KAAyC,CAA7C,EAAgD;EAC9C,aAAOsE,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiCC,OAAjC,EAA0Cd,OAA1C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;EACEoB,EAAAA,uBAAuB,CAAEP,OAAF,EAAWb,OAAX,EAAoB;EAAA;;EACzC,QAAIhV,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChC9B,MAAAA,GAAG,CAAC8B,gBAAJ,GAAuBvE,cAAc,CAAC2C,kBAAf,CAAkCxJ,SAAlC,CAAvB;EACD;;EACD,QAAI,EAACsJ,GAAD,aAACA,GAAD,iDAACA,GAAG,CAAE8B,gBAAN,2DAAC,uBAAuBtH,cAAvB,CAAsCqb,OAAtC,CAAD,CAAJ,EAAqD;EACnD,8DAAavP,KAAb,wBAAmCuP,OAAnC;EACD,KAFD,MAEO;EACL,aAAO7V,GAAG,CAAC8B,gBAAJ,CAAqB+T,OAArB,CAAP;EACD;;EACDtY,IAAAA,cAAc,CAACqC,gBAAf,CAAgClJ,SAAhC,EAA2CsJ,GAAG,CAAC8B,gBAA/C;EACA,SAAK6T,kBAAL,CAAwBE,OAAxB,EAAiC,IAAjC,EAAuCb,OAAvC;EACD;;EAEDW,EAAAA,kBAAkB,CAAEE,OAAF,EAAWC,OAAX,EAAoBd,OAApB,EAA6B;EAC7C;EACA,QAAIjX,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA1S,IAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ,CAJ6C;;EAO7C8H,IAAAA,UAAU,CAACoF,OAAD,CAAV,GAAsB;EAAE,OAACb,OAAD,GAAWA,OAAO,KAAKrc,cAAZ,GAA6B,IAA7B,GAAoCmd;EAAjD,KAAtB;;EACA,QAAIrF,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,MAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,IAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,8DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,UAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,8DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;EAzS+C;;6DAiD1BqU,YAAY;EAChC,MAAI/O,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAI,CAACjc,aAAa,CAACqc,eAAD,CAAd,IAAoC,CAACA,eAAe,CAACpQ,KAAzD,EAAiE;EAC/DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA0C,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB;;EACA,gBAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,cAAIsP,WAAW,GAAG,sDAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;EACF;EACF;EACF;EACF;;;;;;;;;;;;;;;;;;;;;;ECrFY,MAAM2U,gBAAN,SAA+BrP,KAA/B,CAAqC;EAQlDvS,EAAAA,WAAW,OAOX8S,MAPW,EAOH;EAAA,QAPK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGXnI,MAAAA,OAHW;EAIXxJ,MAAAA,MAJW;EAKXuJ,MAAAA;EALW,KAOL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,gEAAgBD,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,gEAAgBnI,OAAhB;EACA,8DAAexJ,MAAf;EACA,oEAAkBwM,MAAlB;EACA,8DAAejD,MAAf;EACD,GAvBiD;;;EA0LlDgS,EAAAA,KAAK,GAAI;EACP,4DAAarV,KAAb,CAAmB,wCAAnB;;EACA;;EACAhE,IAAAA,cAAc,CAACsD,WAAf,CAA2B9K,KAA3B,EAAkC,IAAlC;EACD;;EAkED0N,EAAAA,IAAI,GAAkB;EAAA,sCAAbmR,WAAa;EAAbA,MAAAA,WAAa;EAAA;;EACpB,8EAAwBA,WAAxB;;EACA,WAAO,CAAP;EACD;;EAED5M,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,4GAAwB,IAAxB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EA1QiD;;2CA0BrCqO,YAAY;EACvB,MAAIvJ,WAAW,GAAG,IAAlB;EACAvP,EAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;;EACA,QAAM+J,MAAM,GAAIC,GAAD,IAAS;EACtB,QAAI7V,CAAC,GAAG1D,cAAc,CAAC2C,kBAAf,CAAkC/J,YAAlC,CAAR;EACA,UAAM4gB,CAAC,GAAGxZ,cAAc,CAAC2C,kBAAf,CAAkChK,YAAlC,CAAV;EACA,QAAI8gB,GAAJ;;EACA,QAAI/V,CAAC,IAAI,IAAT,EAAe;EACbA,MAAAA,CAAC,GAAG,EAAJ;EACA+V,MAAAA,GAAG,GAAGF,GAAN;EACD,KAHD,MAGO;EACL;EACAE,MAAAA,GAAG,GAAG/V,CAAC,CAACjM,EAAR;EACA,UAAIiiB,aAAa,GAAG,KAApB;EACA,UAAIC,YAAY,GAAG,KAAnB;;EACA,UAAIF,GAAG,IAAI,IAAX,EAAiB;EACfA,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACAG,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACD,UAAIjX,GAAG,CAAC3I,SAAJ,IAAiB,IAAjB,IAAyBkG,cAAc,CAACE,wBAAf,EAA7B,EAAwE;EACtEuC,QAAAA,GAAG,CAAC3I,SAAJ,GAAgB,IAAI8L,QAAJ,CAAa7L,cAAb,CAAhB;EACD;;EAED,UAAI2f,aAAJ,EAAmB;EACjB,YAAKF,CAAD,IAAO,IAAX,EAAiB;EACf;EACA/W,UAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBD,CAAvB;EACA/W,UAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACD;EACF,OAND,MAMO;EACL;EACA;EACA,aAAK,MAAM1C,GAAX,IAAkBwX,GAAlB,EAAuB;EACrB,cAAIA,GAAG,CAACtc,cAAJ,CAAmB8E,GAAnB,CAAJ,EAA6B;EAC3B,kBAAMtK,EAAE,GAAG8hB,GAAG,CAACxX,GAAD,CAAd;;EACA,gBAAIU,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBvO,EAApB,CAAJ,EAA6B;EAC3BgiB,cAAAA,GAAG,GAAGhiB,EAAN;EACAkiB,cAAAA,YAAY,GAAG,IAAf;EACA;EACD;EACF;EACF;EACF;;EAED,UAAIA,YAAJ,EAAkB;EAChB,YAAIF,GAAG,KAAKhX,GAAG,CAAC3I,SAAJ,CAAcgN,UAAd,EAAZ,EAAwC;EACtC;EACA;EACA;EACD,SAJD,MAIO;EACLyI,UAAAA,WAAW,GAAG,KAAd;EACAvP,UAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD0U,WAAxD;EACD;;EACD,cAAMqK,UAAU,GAAGnX,GAAG,CAAC3I,SAAJ,CAAcqM,GAAd,CAAkBsT,GAAlB,CAAnB;EACAhX,QAAAA,GAAG,CAAC3I,SAAJ,CAAcwM,GAAd,CAAkBmT,GAAlB,EAAuBG,UAAvB;EACA5Z,QAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8CihB,UAA9C;EACA,gEAAaxV,OAAb,GAAuBwV,UAAvB;EAEA,cAAMxR,KAAK,GAAG3F,GAAG,CAAC3I,SAAJ,CAAc8M,gBAAd,EAAd;;EACA,YAAI5G,cAAc,CAAC2C,kBAAf,CAAkC9H,sBAAlC,KAA6DuN,KAAK,KAAK,CAAC,CAA5E,EAA+E;EAC7E;EACA,gBAAMC,QAAQ,GAAG5F,GAAG,CAAC3I,SAAJ,CAAckM,KAAd,CAAoBoC,KAApB,CAAjB;;EACA,oEAAcE,sBAAd,CAAqCD,QAArC;EACD;EACF,OApBD,MAoBO;EACL,YAAI,CAACqR,aAAL,EAAoB;EAClB,eAAKL,KAAL;EACD,SAFD,MAEO;EACL,cAAKG,CAAD,IAAO,IAAX,EAAiB;EACf,oEAAapV,OAAb,GAAuBoV,CAAvB;EACAxZ,YAAAA,cAAc,CAACqC,gBAAf,CAAgC1J,YAAhC,EAA8C6gB,CAA9C;EACAjK,YAAAA,WAAW,GAAG,KAAd;EACD;EACF;;EACDvP,QAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACA4e,QAAAA,GAAG,GAAGF,GAAG,CAAC,CAAD,CAAT;EACD;EACF;;EACD7V,IAAAA,CAAC,CAACjM,EAAF,GAAOgiB,GAAP;EACAzZ,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzJ,YAAhC,EAA8C8K,CAA9C;EACD,GA7ED;;EA+EA,MAAIqG,KAAK,CAACC,OAAN,CAAc8O,UAAd,KAA6BA,UAAU,CAAC3a,MAAX,GAAoB,CAArD,EAAwD;EACtD,SAAK,MAAMsI,KAAX,IAAoBqS,UAApB,EAAgC;EAC9B,UAAIA,UAAU,CAAC7b,cAAX,CAA0BwJ,KAA1B,CAAJ,EAAsC;EACpC,cAAMsS,QAAQ,GAAGD,UAAU,CAACrS,KAAD,CAA3B;EACA,YAAIjG,IAAI,GAAG,EAAX;EACA,YAAI0S,UAAJ;;EACA,YAAI6F,QAAQ,CAACC,IAAT,IAAiB,IAArB,EAA2B;EAAE;EAC3B9F,UAAAA,UAAU,GAAG6F,QAAQ,CAACC,IAAtB;;EACA,cAAIlc,aAAa,CAACoW,UAAD,CAAb,IAA6B,CAACD,cAAc,CAACC,UAAD,EAAa;EAC3DpV,YAAAA,MAAM,8BAAE,IAAF;EADqD,WAAb,CAAhD,EAEI;EACF;EACD;EACF,SAPD,MAOO,IAAIib,QAAQ,CAACE,QAAT,IAAqB,IAAzB,EAA+B;EAAE;EACtC,gBAAMC,YAAY,GAAGH,QAAQ,CAACE,QAA9B,CADoC;;EAIpC,cAAI,CAACnc,aAAa,CAACoc,YAAD,CAAd,IAAiC,CAACA,YAAY,CAACnQ,KAAnD,EAA2D;EACzDmK,YAAAA,UAAU,GAAGM,gBAAgB,CAAC0F,YAAD,CAA7B;EACD;EACF,SAPM,MAOA,IAAIH,QAAQ,CAAC,aAAD,CAAR,IAA2B,IAA/B,EAAqC;EAC1C,gBAAMI,eAAe,GAAGJ,QAAQ,CAAC,aAAD,CAAhC;;EACA,cAAIjc,aAAa,CAACqc,eAAD,CAAb,IAAmC,CAACA,eAAe,CAACpQ,KAAxD,EAAgE;EAC9DmK,YAAAA,UAAU,GAAG6B,mBAAmB,CAACoE,eAAD,EAAkB;EAAErb,cAAAA,MAAM,8BAAE,IAAF;EAAR,aAAlB,CAAhC;EACD;EACF;;EACD,YAAIoV,UAAU,IAAI,IAAd,IAAuB,CAACpW,aAAa,CAACoW,UAAD,CAAzC,EAAwD;EAAE;EACxD1S,UAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,cAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzB;EACAxE,YAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EAEDpL,UAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA,gBAAMqG,GAAG,GAAG,EAAZ;;EACA,cAAIvZ,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAIgT,UAAU,CAAC2G,QAAf,EAAyB;EACvBN,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAAC2G,QAApB;EACD;;EACD,gBAAI3G,UAAU,CAACyB,KAAf,EAAsB;EACpB4E,cAAAA,GAAG,CAACrT,IAAJ,CAASgN,UAAU,CAACyB,KAApB;EACD;;EACD,gBAAIzB,UAAU,CAAC+B,IAAf,EAAqB;EACnBsE,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAAC+B,IAA5B;EACD;;EACD,gBAAI/B,UAAU,CAACU,IAAf,EAAqB;EACnB2F,cAAAA,GAAG,CAACrT,IAAJ,CAAS,QAAQgN,UAAU,CAACU,IAA5B;EACD;;EACD,gBAAI2F,GAAG,CAACpb,MAAJ,GAAa,CAAjB,EAAoB;EAClBmb,cAAAA,MAAM,CAACC,GAAD,CAAN;EACD;EACF;;EACD3D,UAAAA,oBAAoB,CAAC1C,UAAD,EAAa,IAAb,CAApB;EACA1S,UAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;;EAEA,oEAAcka,QAAd,CAAuBrX,IAAvB,EA7BsD;EA+BtD;EACA;;;EACA,cAAI+O,WAAJ,EAAiB;EACf/O,YAAAA,IAAI,CAACxG,MAAD,CAAJ,GAAe,IAAf;EACD;;EACD,gBAAM8d,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,cAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,UAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB,CAvCsD;EA0CtD;EACA;;EAEA,oEAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD,EAAgE8K,WAAhE;EACD;EACF;EACF;EACF;EACF;;mEAQyB;EACxB9M,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,KAAnB;EACAyN,EAAAA,OAAO,CAAClO,KAAR,CAAc,wBAAd;;EACA,MAAIhE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;;EACA,4DAAc0F,sBAAd,CAAqC,EAArC;EACD;;6CAEc;EACbhG,EAAAA,GAAG,CAACgC,YAAJ,GAAmB,IAAnB;;EACA,0DAAaT,KAAb,CAAmB,uBAAnB;;EACAvB,EAAAA,GAAG,CAACC,WAAJ,GAAkB;EAChB0B,IAAAA,OAAO,EAAE,IADO;EAEhBC,IAAAA,KAAK,EAAE,CAFS;EAGhBC,IAAAA,MAAM,EAAE;EAHQ,GAAlB;;EAKA,MAAItE,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,WAAOC,YAAY,CAACxH,YAAD,CAAnB;EACA,WAAOwH,YAAY,CAACvH,YAAD,CAAnB;EACA,WAAOuH,YAAY,CAAChH,SAAD,CAAnB;EACA,WAAOgH,YAAY,CAAClH,SAAD,CAAnB;EACA,WAAOkH,YAAY,CAACjH,WAAD,CAAnB;EACA,WAAOiH,YAAY,CAAC9G,UAAD,CAAnB;EACA,WAAO8G,YAAY,CAACtH,gBAAD,CAAnB;EACA,WAAOsH,YAAY,CAACzH,qBAAD,CAAnB;EACD;;EACDsH,EAAAA,cAAc,CAACc,YAAf,CAA4BnI,YAA5B,EAA0C8J,GAAG,CAACM,WAA9C;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BjI,gBAA5B,EAA8C0T,WAAW,EAAzD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4BlI,YAA5B,EAA0C2T,WAAW,EAArD;EACAvM,EAAAA,cAAc,CAACc,YAAf,CAA4B,0DAAcgZ,UAA1C,EAAsDrX,GAAG,CAACM,WAA1D;EACA/C,EAAAA,cAAc,CAACc,YAAf,CAA4BzH,UAA5B,EAAwCoJ,GAAG,CAACM,WAA5C;EACA,0DAAaqB,OAAb,GAAuB,IAAvB;;EACA,4DAAcqE,sBAAd,CAAqC,EAArC;EACD;;yDAEmBsR,UAAU;EAC5B,MAAIhQ,KAAK,CAACC,OAAN,CAAc+P,QAAd,KAA2BA,QAAQ,CAAC5b,MAAT,GAAkB,CAAjD,EAAoD;EAClD,UAAM+U,UAAU,GAAG6G,QAAQ,CAACC,GAAT,EAAnB;EACA,UAAMC,cAAc,GAAG/G,UAAU,IAAI,IAAd,IAAsB3W,QAAQ,CAAC2W,UAAD,CAA9B,KACjBA,UAAU,CAAC8F,IAAX,IAAmB,IAAnB,IAA2Bxc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC8F,IAAvB,EAA6B7a,MAA7B,GAAsC,CAAlE,IACI+U,UAAU,CAAC+F,QAAX,IAAuB,IAAvB,IAA+Bzc,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC+F,QAAvB,EAAiC9a,MAAjC,GAA0C,CAD7E,IAEI+U,UAAU,CAAC,aAAD,CAAV,IAA6B,IAA7B,IAAqC1W,MAAM,CAACgV,IAAP,CAAY0B,UAAU,CAAC,aAAD,CAAtB,EAAuC/U,MAAvC,GAAgD,CAHvE,CAAvB;;EAIA,QAAI8b,cAAJ,EAAoB;EAClBja,MAAAA,cAAc,CAACyD,uBAAf;;EACA,UAAI;EACF,oEAAiB,CAACyP,UAAD,CAAjB;EACD,OAFD,CAEE,OAAOvS,CAAP,EAAU;EACV,gEAAaqD,KAAb,CAAmBrD,CAAnB;EACD;EACF,KAPD,MAOO;EACL,8DAAaoI,KAAb,CAAmB,uCAAnB;EACD;EACF;EACF;;EC9RI,MAAMmR,mBAAN,SAAkCC,WAAlC,CAA8C;EACnD3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKb4iB,OALa,GAKH,IALG;EAAA,SAMbC,QANa,GAMF,IANE;EAAA,SAObC,MAPa,GAOJ,IAPI;EAAA,SAQbC,KARa,GAQL,IARK;EAAA,SASbC,SATa,GASD,IATC;EAAA,SAUbC,cAVa,GAUI,IAVJ;EAEb,SAAKH,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EASC,MAAIC,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKuc,oBAAL;EACD;EACF;;EAED,MAAIvT,OAAJ,GAAe;EACb,WAAO,KAAK+S,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI/S,OAAJ,CAAahJ,GAAb,EAAkB;EAChB,SAAK+b,QAAL,GAAgB/b,GAAhB;EACD;;EAED,MAAIwc,KAAJ,GAAa;EACX,WAAO,KAAKF,MAAL,CAAYG,OAAnB;EACD;;EAED,MAAIC,OAAJ,GAAe;EACb,WAAO,KAAKJ,MAAL,CAAYK,UAAnB;EACD;;EAED,MAAIC,UAAJ,GAAkB;EAChB,WAAO,KAAKN,MAAL,CAAYO,OAAZ,CAAoBD,UAA3B;EACD;;EAEDL,EAAAA,oBAAoB,GAAI;EACtB,UAAM5I,UAAU,GAAG,KAAK2I,MAAL,CAAYG,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAnB;EACA,UAAM+C,gBAAgB,GAAG,KAAKyC,OAAL,CAAa8T,SAAtC;EAEA,SAAKd,MAAL,CAAYe,SAAZ,GAAwB,KAAKC,wBAAL,EAAxB;EACA,SAAKf,KAAL,GAAa,KAAKgB,UAAL,CAAgBpF,cAAhB,CAA+B,gBAA/B,CAAb;EACA,SAAKqE,SAAL,GAAiB,KAAKe,UAAL,CAAgBpF,cAAhB,CAA+B,WAA/B,CAAjB;EACA,SAAKqF,SAAL,GAAiB,KAAKD,UAAL,CAAgBpF,cAAhB,CAA+B,OAA/B,CAAjB;EAEA,SAAKoE,KAAL,CAAWkB,gBAAX,CAA4B,MAA5B,EAAoC,KAAKC,4BAAL,EAApC;EACA,SAAKjB,cAAL,GAAsB,IAAIkB,cAAJ,CAAmB,MAAM,KAAKC,YAAL,CAAkB,KAAKrB,KAAvB,EAA8B,KAAKC,SAAnC,CAAzB,CAAtB;EACA,SAAKC,cAAL,CAAoBoB,OAApB,CAA4B,KAAKtB,KAAjC;EAEA,SAAKiB,SAAL,CAAeC,gBAAf,CAAgC,OAAhC,EAAyC,MAAM;EAC7C,WAAKhB,cAAL,CAAoBqB,SAApB,CAA8B,KAAKvB,KAAnC;EACArZ,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDZ,OAAlD,GAA4D,MAA5D;EACA,WAAKva,MAAL;;EACA,UAAIqR,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,IAAzC,EAA+C;EAC7C,YAAIjS,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,gBAAMiR,WAAW,GAAGL,iBAAiB,EAArC;EAEA,cAAImF,kBAAkB,GAAG9E,WAAW,CAACF,EAAZ,CAAepM,gBAAf,CAAzB;;EACA,cAAIoR,kBAAkB,IAAI,IAA1B,EAAgC;EAC9BA,YAAAA,kBAAkB,GAAG,EAArB;EACA9E,YAAAA,WAAW,CAACtM,gBAAD,CAAX,GAAgCoR,kBAAhC;EACD;;EACDA,UAAAA,kBAAkB,CAAChE,UAAD,CAAlB,GAAiC,KAAjC;EACAf,UAAAA,kBAAkB,CAACC,WAAD,CAAlB;EACD;EACF;EACF,KAjBD;EAmBA/O,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;;EAEA,QAAI,KAAKE,UAAT,EAAqB;EACnB,WAAKX,KAAL,CAAWkB,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,aAAKb,MAAL,CAAYO,OAAZ,CAAoB/Y,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAY,KAAKf,UAAjB,EAA6B,QAA7B,CAA7B,GAAsE9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B,KAAK8O,UAAzG;EACA9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAHD;EAID;EACF;;EAEDY,EAAAA,YAAY,CAAErB,KAAF,EAASC,SAAT,EAAoB;EAC9B,UAAM4B,KAAK,GAAG,KAAKC,qBAAL,CAA2B9B,KAA3B,CAAd;EACAC,IAAAA,SAAS,CAACuB,KAAV,CAAgBO,WAAhB,CAA4B,OAA5B,YAAwCF,KAAxC;EACD;;EAEDd,EAAAA,wBAAwB,GAAI;EAC1B,+BACI,KAAKV,MAAL,CAAY2B,UAAZ,CAAuBC,GAD3B,uBAEI,KAAK5B,MAAL,CAAY2B,UAAZ,CAAuBE,IAF3B;EAID;;EAEDf,EAAAA,4BAA4B,GAAI;EAC9B,WAAO,MAAM;EACX,YAAMU,KAAK,GAAG,KAAKC,qBAAL,CAA2B,KAAK9B,KAAhC,CAAd;EACA,WAAKA,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,OAA7B,YAAyCF,KAAzC;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,OAAjC,YAA6CF,KAA7C;EACA,WAAK5B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,QAAjC,EAA2C,MAA3C;EACA,WAAK9B,SAAL,CAAeuB,KAAf,CAAqBO,WAArB,CAAiC,UAAjC,EAA6C,OAA7C;EACA,WAAK/B,KAAL,CAAWwB,KAAX,CAAiBO,WAAjB,CAA6B,YAA7B,EAA2C,SAA3C;EACA,WAAKd,SAAL,CAAeO,KAAf,CAAqBO,WAArB,CAAiC,YAAjC,EAA+C,SAA/C;EACApb,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,EAA4C4F,KAA5C,CAAkDW,UAAlD,GAA+D,SAA/D;EACD,KATD;EAUD;;EAEDL,EAAAA,qBAAqB,CAAEM,GAAF,EAAO;EAC1B,UAAMC,KAAK,GAAGD,GAAG,CAACE,YAAJ,GAAmBF,GAAG,CAACG,aAArC;EACA,WAAOH,GAAG,CAACI,MAAJ,GAAaH,KAApB;EACD;;EAlHgD;;ECL9C,MAAMI,OAAN,SAAsB7C,WAAtB,CAAkC;EACvC3iB,EAAAA,WAAW,CAAEylB,MAAF,EAAUC,OAAV,EAAmB;EAC5B;EAD4B,SAQ9BC,OAR8B,GAQpB,IARoB;EAAA,SAS9BC,QAT8B,GASnB,IATmB;EAE5B,SAAK9C,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACA,SAAKsC,MAAL,GAAcA,MAAd;EACA,SAAKC,OAAL,GAAeA,OAAf;EACA,SAAKG,aAAL,CAAmBH,OAAnB;EACD;;EAKD,MAAIlC,OAAJ,GAAe;EACb,WAAO,KAAKkC,OAAL,CAAajC,UAApB;EACD;;EAED,MAAIhJ,UAAJ,GAAkB;EAChB,WAAO,KAAKiL,OAAL,CAAanC,OAApB;EACD;;EAEDuC,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDH,EAAAA,aAAa,CAAEI,GAAF,EAAO;EAClB,SAAKN,OAAL,GAAe,KAAKG,QAAL,CAAc,KAAd,EAAqB,gBAArB,CAAf;;EAEA,YAAQG,GAAG,CAACC,YAAZ;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,gBAAMR,OAAO,GAAG,KAAKS,mBAAL,CAAyBF,GAAG,CAACA,GAAJ,CAAQ,CAAR,CAAzB,CAAhB;EACA,eAAKN,OAAL,CAAatM,WAAb,CAAyBqM,OAAzB;EACD;EANH;;EASA,UAAMU,SAAS,GAAG,KAAKN,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAM,IAAAA,SAAS,CAACvC,SAAV,mBAA+BwC,sBAAsB,CAACJ,GAAG,CAAChmB,EAAJ,CAAOqK,KAAP,CAAa,GAAb,EAAkB,CAAlB,CAAD,CAArD;;EACA,QAAI,CAAC2b,GAAG,CAACK,MAAT,EAAiB;EACf,YAAMC,YAAY,GAAG,KAAKT,QAAL,CAAc,MAAd,EAAsB,cAAtB,CAArB;EACAM,MAAAA,SAAS,CAAC/M,WAAV,CAAsBkN,YAAtB;EACD;;EAED,SAAKZ,OAAL,CAAatM,WAAb,CAAyB+M,SAAzB;EACA,SAAKtD,MAAL,CAAYzJ,WAAZ,CAAwB,KAAKsM,OAA7B;EACD;;EAEDQ,EAAAA,mBAAmB,CAAEF,GAAF,EAAO;EACxB,UAAMP,OAAO,GAAG,KAAKI,QAAL,CAAc,KAAd,EAAqB,SAArB,CAAhB;;EAEA,QAAIG,GAAG,CAACO,QAAR,EAAkB;EAChB,YAAMC,cAAc,GAAG,KAAKC,QAAL,CAAcT,GAAG,CAACO,QAAlB,EAA4B,SAA5B,CAAvB;EACAd,MAAAA,OAAO,CAACrM,WAAR,CAAoBoN,cAApB;EACD;;EACD,UAAME,oBAAoB,GAAG,KAAKb,QAAL,CAAc,KAAd,EAAqB,sBAArB,CAA7B;;EACA,QAAIG,GAAG,CAACW,OAAR,EAAiB;EACf,YAAMC,aAAa,GAAG,KAAKH,QAAL,CAAcT,GAAG,CAACW,OAAlB,EAA2B,SAA3B,CAAtB;EACAD,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EACD;;EACD,UAAMC,gBAAgB,GAAG,KAAKhB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;;EACA,QAAIG,GAAG,CAACc,KAAR,EAAe;EACb,YAAMA,KAAK,GAAG,KAAKjB,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAd;EACAiB,MAAAA,KAAK,CAACC,SAAN,GAAkBf,GAAG,CAACc,KAAtB;EACAD,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B0N,KAA7B;EACD;;EACD,QAAId,GAAG,CAACgB,WAAR,EAAqB;EACnB,YAAMA,WAAW,GAAG,KAAKnB,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAmB,MAAAA,WAAW,CAACD,SAAZ,GAAwBf,GAAG,CAACgB,WAA5B;EACAH,MAAAA,gBAAgB,CAACzN,WAAjB,CAA6B4N,WAA7B;EACD;;EACD,QAAIhB,GAAG,CAACc,KAAJ,IAAad,GAAG,CAACgB,WAArB,EAAkC;EAChCN,MAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EACD;;EAED,QAAIb,GAAG,CAACW,OAAJ,IAAeX,GAAG,CAACc,KAAnB,IAA4Bd,GAAG,CAACgB,WAApC,EAAiD;EAC/CvB,MAAAA,OAAO,CAACrM,WAAR,CAAoBsN,oBAApB;EACD;;EACD,QAAIV,GAAG,CAACiB,OAAJ,IAAejB,GAAG,CAACiB,OAAJ,CAAYvgB,MAA/B,EAAuC;EACrC,YAAMwgB,gBAAgB,GAAG,KAAKC,UAAL,CAAgBnB,GAAG,CAACiB,OAApB,CAAzB;EACAxB,MAAAA,OAAO,CAACrM,WAAR,CAAoB8N,gBAApB;EACD;;EACD,WAAOzB,OAAP;EACD;;EAED0B,EAAAA,UAAU,GAAgB;EAAA,QAAdF,OAAc,uEAAJ,EAAI;EACxB,UAAMC,gBAAgB,GAAG,KAAKrB,QAAL,CAAc,KAAd,EAAqB,kBAArB,CAAzB;EACA,QAAIuB,aAAa,GAAG,KAApB;EACAH,IAAAA,OAAO,CAACjN,OAAR,CAAgB,CAACqN,CAAD,EAAI9R,CAAJ,KAAU;EACxB,YAAM+R,MAAM,GAAG,KAAKzB,QAAL,CAAc,QAAd,mBAAkCtQ,CAAlC,GAAuC,QAAvC,CAAf;EACA+R,MAAAA,MAAM,CAACP,SAAP,GAAmBM,CAAC,CAACE,IAArB;;EACA,UAAIhS,CAAC,GAAG,CAAR,EAAW;EACT+R,QAAAA,MAAM,CAAChD,KAAP,CAAakD,OAAb,IAAwB,mBAAxB;EACD;;EACD,UAAIH,CAAC,CAACI,MAAF,KAAa,MAAjB,EAAyB;EACvBL,QAAAA,aAAa,GAAG,IAAhB;EACD;;EACDF,MAAAA,gBAAgB,CAAC9N,WAAjB,CAA6BkO,MAA7B;EACD,KAVD;;EAWA,QAAIF,aAAJ,EAAmB;EACjB,WAAKM,WAAL,CAAiBR,gBAAjB;EACD;;EACD,WAAOA,gBAAP;EACD;;EAEDQ,EAAAA,WAAW,CAAER,gBAAF,EAAoB;EAC7B,SAAKvB,QAAL,GAAgB,KAAKE,QAAL,CAAc,KAAd,qBAAiC,KAAKrL,UAAtC,GAAoD,UAApD,CAAhB;EACA,SAAKmL,QAAL,CAAc/B,SAAd,GAA0B+D,YAA1B;EACA,UAAMC,YAAY,GAAG,KAAK/B,QAAL,CAAc,MAAd,yBAAsC,KAAKrL,UAA3C,GAAyD,cAAzD,CAArB;EACAoN,IAAAA,YAAY,CAACb,SAAb,GAAyB,qBAAzB;EACA,SAAKpB,QAAL,CAAcvM,WAAd,CAA0BwO,YAA1B;EACAV,IAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B,KAAKuM,QAAlC;EACD;;EAEDc,EAAAA,QAAQ,CAAEzS,GAAF,EAAOL,IAAP,EAAa;EACnB,UAAM6S,cAAc,GAAG,KAAKX,QAAL,CAAc,KAAd,YAAwBlS,IAAxB,eAAvB;EACA,UAAM8J,KAAK,GAAG,KAAKoI,QAAL,CAAc,KAAd,EAAqBlS,IAArB,CAAd;EACA8J,IAAAA,KAAK,CAACxE,YAAN,CAAmB,KAAnB,EAA0BjF,GAA1B,EAHmB;;EAKnByJ,IAAAA,KAAK,CAACxE,YAAN,CAAmB,SAAnB,EAA8B,MAA9B;EACAuN,IAAAA,cAAc,CAACpN,WAAf,CAA2BqE,KAA3B;EACA,WAAO+I,cAAP;EACD;;EAEDqB,EAAAA,iBAAiB,CAAEC,IAAF,EAAQC,SAAR,EAAmB;EAClC,YAAQ,KAAKtC,OAAL,CAAaQ,YAArB;EACE,WAAK,WAAL;EACA,WAAK,gBAAL;EACA,WAAK,0BAAL;EAAiC;EAC/B,eAAK+B,6BAAL,CAAmCF,IAAnC,EAAyCC,SAAzC;EACD;EALH;EAOD;;EAEDC,EAAAA,6BAA6B,CAAEF,IAAF,EAAQC,SAAR,EAAmB;EAC9C,UAAM/B,GAAG,GAAG,KAAKP,OAAL,CAAaO,GAAb,CAAiB,CAAjB,CAAZ;EACA,UAAMiC,OAAO,GAAG;EAAE5E,MAAAA,KAAK,EAAE,KAAK7I,UAAd;EAA0B+I,MAAAA,OAAO,EAAE,KAAKA;EAAxC,KAAhB;;EACA,QAAIuE,IAAI,CAACI,OAAL,KAAiB,QAArB,EAA+B;EAC7B,YAAMloB,EAAE,GAAG8nB,IAAI,CAAC9nB,EAAL,CAAQqK,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAX;EACA,YAAMid,MAAM,GAAGtB,GAAG,CAACiB,OAAJ,CAAYjnB,EAAZ,CAAf;EACAioB,MAAAA,OAAO,CAACE,EAAR,GAAa;EACXC,QAAAA,QAAQ,EAAEd,MAAM,CAACC;EADN,OAAb;;EAGA,UAAID,MAAM,CAACG,MAAP,KAAkB,KAAtB,EAA6B;EAC3BH,QAAAA,MAAM,CAACe,eAAP,GAAyB1d,MAAM,CAAC6Z,IAAP,CAAY8C,MAAM,CAACtT,GAAnB,EAAwB,QAAxB,CAAzB,GAA8DrJ,MAAM,CAACG,QAAP,GAAkBwc,MAAM,CAACtT,GAAvF;EACD,OAFD,MAEO,IAAIsT,MAAM,CAACG,MAAP,KAAkB,MAAtB,EAA8B;EACnC9c,QAAAA,MAAM,CAAC2d,KAAP;EACAC,QAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BnB,MAAM,CAACoB,aAArC;EACA,aAAK/C,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACApM,QAAAA,UAAU,CAAC,MAAM;EACf,eAAKkN,QAAL,CAAcrB,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C,EAAmD,WAAnD;EACD,SAFS,EAEP,IAFO,CAAV;EAGD;EACF,KAhBD,MAgBO,IAAIiD,IAAI,CAACI,OAAL,KAAiB,kBAAjB,IAAuClC,GAAG,CAACvC,UAA/C,EAA2D;EAChEuC,MAAAA,GAAG,CAACqC,eAAJ,GAAsB1d,MAAM,CAAC6Z,IAAP,CAAYwB,GAAG,CAACvC,UAAhB,EAA4B,QAA5B,CAAtB,GAA+D9Y,MAAM,CAACG,QAAP,GAAkBkb,GAAG,CAACvC,UAArF;EACD;;EACD,QAAIsE,SAAJ,EAAe;EACbtN,MAAAA,OAAO,CAACkO,GAAR,CAAY,sEAAZ,EAAoFV,OAApF;EACD,KAFD,MAEO;EACLtd,MAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD;EACF;;EAnKsC;;ECDlC,MAAMW,aAAa,GAAG,UAAqH;EAAA,MAApH;EAAEC,IAAAA,eAAF;EAAmBC,IAAAA,WAAnB;EAAgCC,IAAAA,UAAhC;EAA4CC,IAAAA,gBAA5C;EAA8DC,IAAAA,WAA9D;EAA2EC,IAAAA,eAA3E;EAA4FC,IAAAA;EAA5F,GAAoH;EAChJ,kNAM0BN,eAN1B,2CAO0BC,WAP1B,w/BA2CeC,UA3Cf,mLAiDeC,gBAjDf,0FAoD0BC,WApD1B,gCAqDeC,eArDf,87CAyG0BC,iBAzG1B;EAmHD,CApHM;EAsHA,MAAMC,oBAAoB,GAAG,WAa9B;EAAA,MAb+B;EACnCC,IAAAA,oBADmC;EAEnCC,IAAAA,gBAFmC;EAGnCC,IAAAA,qBAHmC;EAInCC,IAAAA,gBAJmC;EAKnCC,IAAAA,cALmC;EAMnCC,IAAAA,kBANmC;EAOnCC,IAAAA,oBAPmC;EAQnCC,IAAAA,qBARmC;EASnCC,IAAAA,wBATmC;EAUnCC,IAAAA,0BAVmC;EAWnCC,IAAAA,2BAXmC;EAYnCC,IAAAA;EAZmC,GAa/B;EACJ,8QAQ4BX,oBAR5B,6CAS4BC,gBAT5B,6iBAgC4BC,qBAhC5B,4DAiC2CA,qBAjC3C,kCAkCiBC,gBAlCjB,oLA0CiBC,cA1CjB,mtCA4F6CJ,oBA5F7C,kBA4FyEA,oBA5FzE,qBA4FwGA,oBA5FxG,6LAmG8CA,oBAnG9C,kBAmG0EA,oBAnG1E,qBAmGyGA,oBAnGzG,sRA6G4BK,kBA7G5B,kCA8GiBC,oBA9GjB,uJAmHkBC,qBAAqB,GAAG,eAAeA,qBAAlB,GAA0C,MAnHjF,2GAuH4BC,wBAvH5B,kCAwHiBC,0BAxHjB,mCAyHkBC,2BAA2B,GAAG,eAAeA,2BAAlB,GAAgD,MAzH7F,4uBAiJsDC,oBAjJtD;EAuJD,CArKM;;EChHA,MAAMC,KAAN,SAAoBvH,WAApB,CAAgC;EACrC3iB,EAAAA,WAAW,CAAEsG,MAAF,EAAU;EACnB;EADmB,SAMrB6jB,WANqB,GAMP,KANO;EAAA,SAOrBC,kBAPqB,GAOA,KAPA;EAAA,SAQrBC,gBARqB,GAQF,IARE;EAAA,SASrBC,gBATqB,GASF,EATE;EAAA,SAUrBC,eAVqB,GAUH,CAVG;EAAA,SAWrBvC,SAXqB,GAWT,KAXS;EAAA,SAYrBwC,qBAZqB,GAYG,EAZH;EAAA,SAerBC,aAfqB,GAeL,IAfK;EAAA,SAgBrB9c,KAhBqB,GAgBb,IAhBa;EAAA,SAiBrB+c,aAjBqB,GAiBL,IAjBK;EAAA,SAkBrBC,SAlBqB,GAkBT,IAlBS;EAAA,SAmBrBC,aAnBqB,GAmBL,IAnBK;EAAA,SAoBrBC,QApBqB,GAoBV,IApBU;EAAA,SAqBrBC,mBArBqB,GAqBC,IArBD;;EAAA,SAsWrBC,0BAtWqB,GAsWQ,CAAC,MAAM;EAClC,aAAQ5hB,CAAD,IAAO;EACZ,YAAIA,CAAC,CAAC6hB,YAAF,GAAiBrX,QAAjB,CAA0B,KAAKhG,KAA/B,CAAJ,EAA2C;EACzC;EACA,gBAAMoa,IAAI,GAAG5e,CAAC,CAAC4e,IAAF,IAAW5e,CAAC,CAAC6hB,YAAF,IAAkB7hB,CAAC,CAAC6hB,YAAF,EAA1C;;EACA,cAAIjD,IAAI,CAACphB,MAAT,EAAiB;EACf,kBAAM1G,EAAE,GAAG8nB,IAAI,CAAC,CAAD,CAAJ,CAAQ9nB,EAAnB;;EACA,gBAAIA,EAAE,KAAK,YAAX,EAAyB;EACvB,mBAAKgrB,WAAL;EACD,aAFD,MAEO,IAAIhrB,EAAE,CAACirB,UAAH,CAAc,WAAd,CAAJ,EAAgC;EACrC,mBAAKC,eAAL,GAAuB,KAAKL,mBAA5B;EACA,mBAAKA,mBAAL,GAA2B/C,IAAI,CAAC,CAAD,CAA/B;EACA,mBAAKqD,oBAAL,CAA0BrD,IAAI,CAAC,CAAD,CAAJ,CAAQf,SAAlC;EACD,aAJM,MAIA;EACL,oBAAMqE,KAAK,GAAGtD,IAAI,CAACuD,MAAL,CAAa7L,CAAD;EAAA;;EAAA,uBAAO,UAAAA,CAAC,CAACxf,EAAF,gDAAMirB,UAAN,CAAiB,SAAjB,MAA+BzL,CAAC,CAAC0I,OAAF,KAAc,kBAApD;EAAA,eAAZ,CAAd;;EACA,kBAAIkD,KAAK,CAAC1kB,MAAV,EAAkB;EAChB,sBAAM4kB,SAAS,GAAGF,KAAK,CAACA,KAAK,CAAC1kB,MAAN,GAAe,CAAhB,CAAvB;EACA4kB,gBAAAA,SAAS,CAACzD,iBAAV,CAA4BuD,KAAK,CAAC,CAAD,CAAjC,EAAsC,KAAKrD,SAA3C;EACD;EACF;EACF;EACF,SAnBD,MAmBO,IAAI,KAAKwD,gBAAL,CAAsBriB,CAAtB,KAA4B,KAAKghB,WAArC,EAAkD;EACvD,cAAI,KAAKC,kBAAT,EAA6B;EAC3B,iBAAKA,kBAAL,GAA0B,KAA1B;EACD,WAFD,MAEO;EACL,iBAAKa,WAAL,CAAiB9hB,CAAjB;EACD;EACF;EACF,OA3BD;EA4BD,KA7B4B,GAtWR;;EAAA,SAmerBsiB,aAneqB,GAmeJC,QAAD,IAAc;EAC5B,UAAI,KAAKd,aAAL,KAAuB,IAA3B,EAAiC;EAC/B,aAAKA,aAAL,CAAmB5D,SAAnB,GAA+B0E,QAAQ,GAAG,CAAX,GAAe,IAAf,GAAsBA,QAArD;EACA,cAAMC,uBAAuB,GAAGD,QAAQ,GAAG,CAAX,IAAgBhiB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAAhD;EACA,aAAKG,aAAL,CAAmBrG,KAAnB,CAAyBZ,OAAzB,GAAmCgI,uBAAuB,GAAG,MAAH,GAAY,MAAtE;EACD;EACF,KAzeoB;;EAEnB,SAAKrlB,MAAL,GAAcA,MAAd;EACA,SAAKwc,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAmBD,MAAIyI,gBAAJ,GAAwB;EACtB,WAAO,EAAP;EACD;;EAED,MAAIA,gBAAJ,CAAsBC,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,QAAIA,IAAI,CAACllB,MAAL,GAAc,CAAlB,EAAqB;EACnB,WAAKmlB,mBAAL,CAAyBD,IAAzB;EACD;EACF;;EAED,MAAIE,0BAAJ,GAAkC;EAChC,WAAO,EAAP;EACD;;EAED,MAAIA,0BAAJ,CAAgCF,IAAhC,EAA2C;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzC,UAAMG,WAAW,GAAG,EAApB;;EACA,QAAIH,IAAI,CAACllB,MAAL,GAAc,CAAd,IAAmB,KAAKgH,KAA5B,EAAmC;EACjC,WAAKqa,SAAL,GAAiB,IAAjB;EACA,WAAKuC,eAAL,GAAuB,CAAvB;EACAsB,MAAAA,IAAI,CAAC5R,OAAL,CAAc7R,CAAD,IAAO;EAClB,cAAM7B,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,QAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP;EACAylB,QAAAA,WAAW,CAACzlB,GAAD,CAAX,GAAmB6B,CAAnB;EACA,aAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,aAAKmiB,eAAL;EACD,OAND;EAOA,WAAK2B,kBAAL,CAAwBF,WAAxB;EACA,WAAKG,0BAAL;EACD;EACF;;EAEDC,EAAAA,iBAAiB,GAAI;EACnB,SAAKC,IAAL;EACD;;EAEDA,EAAAA,IAAI,GAAI;EACN,SAAK5G,MAAL,GAAc,KAAKuC,SAAL,GAAiB,KAAKwC,qBAAtB,GAA8ChiB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlH;;EACA,QAAImB,MAAM,CAACgV,IAAP,CAAY,KAAKyL,MAAjB,EAAyB9e,MAAzB,KAAoC,CAAxC,EAA2C;EACzC;EACD;;EACD,SAAK8jB,aAAL,GAAqB/gB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,CAArB;;EACA,QAAI,KAAKA,aAAL,KAAuB,IAA3B,EAAiC;EAC/B;EACD;;EAED,QAAI,KAAKhF,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAvB,EAA2C;EACzC,WAAKC,gBAAL;EACD,KAFD,MAEO,IAAI,KAAK5B,aAAT,EAAwB;EAC7B,WAAKA,aAAL,CAAmBxhB,MAAnB;EACD;;EAED,SAAKqjB,WAAL;EAEA;EACJ;EACA;EACA;EACA;;EACI/iB,IAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,EAAsC,KAAK3B,0BAA3C;EACArhB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,EAAmC,KAAK8G,0BAAxC;EACA,SAAKtF,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,IAAiC,KAAKykB,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD,CAAjC;EAEA,SAAKlE,MAAL,CAAYe,SAAZ,GAAwB,KAAK+I,cAAL,EAAxB;EACA,SAAK9J,MAAL,CAAYzJ,WAAZ,CAAwB,KAAK1L,KAA7B;EACD;;EAEDkf,EAAAA,oBAAoB,GAAI;EACtB,UAAMC,QAAQ,GAAG,KAAKC,gCAAL,CAAsC,KAAtC,CAAjB;EACA,UAAMC,MAAM,GAAGF,QAAQ,GAAG9nB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,CAAH,GAA2B,EAAlD;;EACA,QAAIE,MAAM,CAACrmB,MAAP,KAAkB,CAAtB,EAAyB;EACvB;EACD;;EACDqmB,IAAAA,MAAM,CAAC/S,OAAP,CAAgB7R,CAAD,IAAO;EACpB,UAAI,CAAC0kB,QAAQ,CAAC1kB,CAAD,CAAR,CAAYke,MAAjB,EAAyB;EACvB,aAAKgE,gBAAL,CAAsBliB,CAAtB,IAA2B0kB,QAAQ,CAAC1kB,CAAD,CAAnC;EACA,aAAKmiB,eAAL;EACD;EACF,KALD;EAMA,SAAK2B,kBAAL,CAAwBY,QAAxB;EACA,SAAKX,0BAAL;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACEY,EAAAA,gCAAgC,GAA2B;EAAA,QAAzBE,gBAAyB,uEAAN,IAAM;EACzD,QAAIH,QAAQ,GAAGI,gBAAgB,EAA/B;EAEA,UAAMjB,GAAG,GAAG1kB,IAAI,CAACC,KAAL,CAAWnC,IAAI,CAAC4mB,GAAL,KAAa,IAAxB,CAAZ;;EACA,SAAK,MAAMhG,GAAX,IAAkB6G,QAAlB,EAA4B;EAC1B,UAAIA,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,IAA0BL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyB,CAAnD,IAAwDL,QAAQ,CAAC7G,GAAD,CAAR,CAAckH,QAAd,GAAyBlB,GAArF,EAA0F;EACxF,YAAIgB,gBAAgB,IAAI,KAAKtf,KAA7B,EAAoC;EAClC,gBAAMyf,EAAE,GAAG,KAAKrJ,UAAL,CAAgBpF,cAAhB,CAA+BmO,QAAQ,CAAC7G,GAAD,CAAR,CAAchmB,EAA7C,CAAX;EACAmtB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;;EACA,cAAI,CAAC0jB,QAAQ,CAAC7G,GAAD,CAAR,CAAcK,MAAnB,EAA2B;EACzB,iBAAKiE,eAAL;EACA,iBAAK4B,0BAAL;EACD;EACF;;EACD,eAAOW,QAAQ,CAAC7G,GAAD,CAAf;EACD;EACF;;EACD,QAAI6G,QAAQ,IAAIA,QAAQ,CAACnmB,MAAT,GAAkB,CAAlC,EAAqC;EACnCmmB,MAAAA,QAAQ,GAAG9nB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDslB,MAAxD,CAA+D,CAACC,GAAD,EAAMnlB,CAAN,KAAY;EAAEmlB,QAAAA,GAAG,CAACnlB,CAAC,CAACnI,EAAH,CAAH,GAAYmI,CAAZ;EAAe,eAAOmlB,GAAP;EAAY,OAAxG,EAA0G,EAA1G,CAAX;EACD;;EACDC,IAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA,WAAOA,QAAP;EACD;;EAEDhB,EAAAA,mBAAmB,GAAa;EAAA,QAAXD,IAAW,uEAAJ,EAAI;EAC9B,UAAM4B,SAAS,GAAG,KAAKV,gCAAL,EAAlB;EACA,UAAM/kB,IAAI,GAAG3C,IAAI,CAAC4mB,GAAL,EAAb;EACA,UAAMyB,YAAY,GAAG,EAArB;EACA7B,IAAAA,IAAI,CAAC5R,OAAL,CAAa,CAAC7R,CAAD,EAAIoN,CAAJ,KAAU;EACrB,YAAMjP,GAAG,aAAM6B,CAAC,CAACmb,OAAF,CAAUjZ,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAN,cAAiCjF,IAAI,CAAC4mB,GAAL,EAAjC,CAAT;EACA7jB,MAAAA,CAAC,CAACnI,EAAF,GAAOsG,GAAP,CAFqB;;EAIrB6B,MAAAA,CAAC,CAACJ,IAAF,GAASA,IAAI,GAAGwN,CAAhB;EACApN,MAAAA,CAAC,CAACke,MAAF,GAAW,CAAX;EACAmH,MAAAA,SAAS,CAAClnB,GAAD,CAAT,GAAiB6B,CAAjB;EACAslB,MAAAA,YAAY,CAACnnB,GAAD,CAAZ,GAAoB6B,CAApB;EACA,WAAKkiB,gBAAL,CAAsB/jB,GAAtB,IAA6B6B,CAA7B;EACA,WAAKmiB,eAAL;EACD,KAVD;EAWAiD,IAAAA,iBAAiB,CAACC,SAAD,CAAjB;;EACA,QAAI,KAAK9f,KAAT,EAAgB;EACd,WAAKue,kBAAL,CAAwBwB,YAAxB;EACA,WAAKvB,0BAAL;EACD;EACF;;EAEDrG,EAAAA,QAAQ,CAAElS,IAAF,EAAQ3T,EAAR,EAAY8lB,IAAZ,EAAkB;EACxB,UAAMC,GAAG,GAAGtc,QAAQ,CAACiL,aAAT,CAAuBf,IAAvB,CAAZ;;EACAoS,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,IAAjB,EAAuBjZ,EAAvB;;EACA+lB,IAAAA,GAAG,CAAC9M,YAAJ,CAAiB,MAAjB,EAAyB6M,IAAI,IAAI9lB,EAAjC;;EACA,WAAO+lB,GAAP;EACD;;EAEDwG,EAAAA,gBAAgB,GAAI;EAClB,QAAI,CAAC,KAAK5B,aAAV,EAAyB;EACvB,WAAKA,aAAL,GAAqB,KAAK9E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB,CADuB;;EAGvB,WAAK8E,aAAL,CAAmBrG,KAAnB,CAAyBkD,OAAzB,iHAA0I,KAAKhC,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCzD,eAAhL,uCAA4N,KAAKrD,MAAL,CAAY6G,MAAZ,CAAmBC,kBAAnB,CAAsCoB,SAAlQ;EACAjkB,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B,KAAKuR,aAA/B;EACD;;EACD,SAAKiD,2BAAL,GAPkB;;EAUlBjjB,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC,MAAM;EACtC,WAAK4J,2BAAL;EACD,KAFD;EAGD;;EAEDA,EAAAA,2BAA2B,GAAI;EAC7B,QAAI;EACF,YAAMC,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB,KAAK8G,MAAL,CAAYgF,aAApC,KAAsD,KAAKA,aAA7E;EACA,YAAM;EAAEsD,QAAAA,GAAF;EAAOC,QAAAA;EAAP,UAAiBF,SAAS,CAACG,qBAAV,EAAvB;EACA,WAAKrD,aAAL,CAAmBrG,KAAnB,CAAyBwJ,GAAzB,aAAkCA,GAAG,GAAG,CAAxC;EACA,WAAKnD,aAAL,CAAmBrG,KAAnB,CAAyB2J,IAAzB,aAAmCF,KAAK,GAAG,CAA3C;EACD,KALD,CAKE,OAAOzc,KAAP,EAAc;EACd,WAAKjL,MAAL,CAAYkG,KAAZ,CAAkB,yCAAlB,EAA6D+E,KAA7D;EACD;EACF;;EAEDkb,EAAAA,WAAW,GAAI;EACb,SAAK9e,KAAL,GAAa,KAAKmY,QAAL,CAAc,KAAd,EAAqB,OAArB,CAAb;EACA,UAAMqI,MAAM,GAAG,KAAKrI,QAAL,CAAc,KAAd,EAAqB,QAArB,CAAf;EAEA,UAAMsI,WAAW,GAAG,KAAKtI,QAAL,CAAc,KAAd,EAAqB,aAArB,CAApB;EACAsI,IAAAA,WAAW,CAACpH,SAAZ,GAAwB,KAAKvB,MAAL,CAAYsB,KAApC;EAEA,UAAM/C,SAAS,GAAG,KAAK8B,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAlB;EACA9B,IAAAA,SAAS,CAACH,SAAV,GAAsB,QAAtB;EAEAsK,IAAAA,MAAM,CAAC9U,WAAP,CAAmB+U,WAAnB;EACAD,IAAAA,MAAM,CAAC9U,WAAP,CAAmB2K,SAAnB;EACA,SAAKrW,KAAL,CAAW0L,WAAX,CAAuB8U,MAAvB;;EACA,QAAI,KAAK1I,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,YAAMgmB,UAAU,GAAG,KAAK0B,gBAAL,EAAnB;EACA,WAAK1gB,KAAL,CAAW0L,WAAX,CAAuBsT,UAAvB;EACD;;EACD,SAAKhC,SAAL,GAAiB,KAAK7E,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAjB;EACA,SAAKnY,KAAL,CAAW0L,WAAX,CAAuB,KAAKsR,SAA5B;EAEA,SAAKD,aAAL,GAAqB,KAAK5E,QAAL,CAAc,KAAd,EAAqB,eAArB,CAArB;EACA,SAAK4E,aAAL,CAAmB1D,SAAnB,GAA+B,sCAA/B;EACA,SAAK2D,SAAL,CAAetR,WAAf,CAA2B,KAAKqR,aAAhC,EAtBa;;EAyBb,UAAM4D,OAAO,GAAG;EACdC,MAAAA,IAAI,EAAE,KAAK5D,SADG;EAEd6D,MAAAA,UAAU,EAAE,KAFE;EAGdC,MAAAA,SAAS,EAAE;EAHG,KAAhB;EAKA,SAAK5D,QAAL,GAAgB,IAAI6D,oBAAJ,CAAyB,CAACC,OAAD,EAAU9D,QAAV,KAAuB;EAAE,WAAK+D,mBAAL,CAAyBD,OAAzB;EAAmC,KAArF,EAAuFL,OAAvF,CAAhB;EAEA,SAAKzB,oBAAL;EACD;;EAEDwB,EAAAA,gBAAgB,GAAI;EAClB,UAAMQ,mBAAmB,GAAG,KAAK/I,QAAL,CAAc,KAAd,EAAqB,qBAArB,CAA5B;EAEA,UAAMgJ,SAAS,GAAG,KAAKhJ,QAAL,CAAc,KAAd,EAAqB,WAArB,CAAlB;EACAgJ,IAAAA,SAAS,CAACjL,SAAV,GAAsBkL,QAAtB;EACAD,IAAAA,SAAS,CAACE,QAAV,CAAmB,CAAnB,EAAsBzK,KAAtB,GAA8B,2BAA9B;EACAuK,IAAAA,SAAS,CAAC7K,gBAAV,CAA2B,OAA3B,EAAoC,MAAM;EACxC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,CAAC,EAA9D,EAAkE,CAAlE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCyV,SAAhC;EAEA,UAAMI,iBAAiB,GAAG,KAAKpJ,QAAL,CAAc,KAAd,EAAqB,mBAArB,CAA1B;EACA,UAAMqJ,WAAW,GAAG,CAAC,KAAD,EAAQ,GAAG,KAAK1J,MAAL,CAAYkH,UAAvB,CAApB;;EACAwC,IAAAA,WAAW,CAAClV,OAAZ,CAAoB,CAACzP,CAAD,EAAIgL,CAAJ,KAAU;EAC5B,YAAM4Z,QAAQ,GAAG,KAAKtJ,QAAL,CAAc,KAAd,qBAAiCtQ,CAAjC,GAAsC,UAAtC,CAAjB;EACA4Z,MAAAA,QAAQ,CAACpI,SAAT,GAAqBxc,CAArB;;EACA,UAAIgL,CAAC,KAAK,CAAV,EAAa;EACX,aAAKsV,mBAAL,GAA2BsE,QAA3B;EACD;;EACDF,MAAAA,iBAAiB,CAAC7V,WAAlB,CAA8B+V,QAA9B;EACD,KAPD;;EAQAP,IAAAA,mBAAmB,CAACxV,WAApB,CAAgC6V,iBAAhC;EAEA,UAAMG,UAAU,GAAG,KAAKvJ,QAAL,CAAc,KAAd,EAAqB,YAArB,CAAnB;EACAuJ,IAAAA,UAAU,CAACxL,SAAX,GAAuBkL,QAAvB;EACAM,IAAAA,UAAU,CAACpL,gBAAX,CAA4B,OAA5B,EAAqC,MAAM;EACzC,WAAKF,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDsQ,QAApD,CAA6D,EAA7D,EAAiE,CAAjE;EACD,KAFD;EAGAJ,IAAAA,mBAAmB,CAACxV,WAApB,CAAgCgW,UAAhC;EAEA,UAAMf,OAAO,GAAG;EAAEC,MAAAA,IAAI,EAAEM,mBAAR;EAA6BJ,MAAAA,SAAS,EAAE;EAAxC,KAAhB;EACA,UAAMa,aAAa,GAAGJ,iBAAiB,CAACF,QAAlB,CAA2B,CAA3B,CAAtB;EACA,UAAMO,YAAY,GAAGL,iBAAiB,CAACF,QAAlB,CAA2B,KAAKvJ,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAlD,CAArB;EAEA,UAAM6oB,qBAAqB,GAAG,IAAId,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC5D,WAAKsmB,kBAAL,CAAwBX,SAAxB,EAAmC3lB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA7D;EACD,KAF6B,EAE3BpB,OAF2B,CAA9B;EAGAkB,IAAAA,qBAAqB,CAACnL,OAAtB,CAA8BiL,aAA9B;EAEA,UAAMK,oBAAoB,GAAG,IAAIjB,oBAAJ,CAA0BvlB,CAAD,IAAO;EAC3D,WAAKsmB,kBAAL,CAAwBJ,UAAxB,EAAoClmB,CAAC,CAAC,CAAD,CAAD,CAAKumB,iBAAL,IAA0B,GAA9D;EACD,KAF4B,EAE1BpB,OAF0B,CAA7B;EAGAqB,IAAAA,oBAAoB,CAACtL,OAArB,CAA6BkL,YAA7B;EAEA,WAAOV,mBAAP;EACD;;EAEDY,EAAAA,kBAAkB,CAAErC,EAAF,EAAMwC,IAAN,EAAY;EAC5B,QAAI,CAACxC,EAAL,EAAS;EACP;EACD;;EACDA,IAAAA,EAAE,CAAC7I,KAAH,CAASZ,OAAT,GAAmBiM,IAAI,GAAG,MAAH,GAAY,MAAnC;EACD;;EAEDxE,EAAAA,oBAAoB,CAAEyE,cAAF,EAAkB;EACpC,SAAKxF,gBAAL,GAAwBwF,cAAxB;EAEA,SAAKlF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,QAAIC,OAAO,GAAG,CAAd;EAEA,SAAK5E,eAAL,IAAwB,KAAKA,eAAL,CAAqBjS,YAArB,CAAkC,UAAlC,EAA8C,OAA9C,CAAxB;EACA,SAAK4R,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,MAAlD;EAEA,SAAKyR,SAAL,CAAeqF,UAAf,CAA0B/V,OAA1B,CAAkCzP,CAAC,IAAI;EACrC,UAAIA,CAAC,CAACsV,YAAF,CAAe,IAAf,MAAyB,eAA7B,EAA8C;EAC5CtV,QAAAA,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,GAAmB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmC7f,CAAC,CAACsV,YAAF,CAAe,UAAf,MAA+B,KAAKuK,gBAAxE,GAA4F,OAA5F,GAAsG,MAAxH;;EACA,YAAI7f,CAAC,CAAC+Z,KAAF,CAAQZ,OAAR,KAAoB,OAAxB,EAAiC;EAC/BoM,UAAAA,OAAO;EACR;EACF;EACF,KAPD;;EAQA,QAAIA,OAAO,KAAK,CAAhB,EAAmB;EACjB,WAAKrF,aAAL,CAAmB1D,SAAnB,aAAkC6I,cAAlC;EACA,WAAKnF,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,OAAnC;EACD,KAHD,MAGO;EACL,WAAK+G,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmC,MAAnC;EACD;EACF;;EAEDuI,EAAAA,kBAAkB,GAAiB;EAAA;;EAAA,QAAfY,QAAe,uEAAJ,EAAI;EACjC,KAAC,KAAK9E,SAAN,IAAmB,KAAKiI,uBAAL,EAAnB;EACA,SAAKtF,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,UAAMI,cAAc,4BAAG,KAAKzK,MAAL,CAAYyK,cAAf,yEAAiCnsB,aAArD;EACA,UAAMosB,UAAU,GAAG,KAAKxF,SAAL,CAAewF,UAAlC;EAEA,UAAMC,UAAU,GAAGprB,MAAM,CAAC8N,MAAP,CAAcga,QAAd,EAAwBO,IAAxB,CAA6B,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAUA,CAAC,CAACtf,IAAF,GAAS0M,CAAC,CAAC1M,IAAlD,EAAwDqoB,GAAxD,CAA6DjoB,CAAD,IAAOA,CAAC,CAACnI,EAArE,CAAnB;;EACA,SAAK,MAAMmI,CAAX,IAAgBgoB,UAAhB,EAA4B;EAC1B,YAAMxhB,IAAI,GAAG,IAAI4W,OAAJ,CAAY,KAAKC,MAAjB,EAAyBqH,QAAQ,CAAC1kB,CAAD,CAAjC,CAAb;EACAwG,MAAAA,IAAI,CAACsK,YAAL,CAAkB,IAAlB,EAAwB4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYnI,EAApC;EACA2O,MAAAA,IAAI,CAACsK,YAAL,CAAkB,OAAlB,EAA2B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYqb,UAAvC;EACA7U,MAAAA,IAAI,CAACsK,YAAL,CAAkB,MAAlB,EAA0B,kBAA1B;;EACA,UAAI,KAAKuM,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,CAApC,EAAuC;EACrCiI,QAAAA,IAAI,CAACsK,YAAL,CAAkB,UAAlB,EAA8B4T,QAAQ,CAAC1kB,CAAD,CAAR,CAAYkoB,IAAZ,CAAiB,CAAjB,KAAuB,EAArD;EACA1hB,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAsB,KAAK0G,gBAAL,KAA0B,KAA1B,IAAmCyC,QAAQ,CAAC1kB,CAAD,CAAR,CAAYgnB,QAAZ,KAAyB,KAAK/E,gBAAlE,GAAsF,OAAtF,GAAgG,MAArH;EACD,OAHD,MAGO;EACLzb,QAAAA,IAAI,CAAC2V,KAAL,CAAWZ,OAAX,GAAqB,OAArB;EACD;;EACD,WAAKgH,SAAL,CAAe4F,YAAf,CAA4B3hB,IAA5B,EAAkCuhB,UAAlC;EACA,WAAKtF,QAAL,CAAcxG,OAAd,CAAsBzV,IAAtB;EACD;;EAED,QAAI4hB,aAAa,GAAG,KAAK7F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoD9pB,MAAxE;;EACA,WAAO6pB,aAAa,GAAGN,cAAvB,EAAuC;EACrC,YAAMQ,WAAW,GAAG,KAAK/F,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,CAApB;;EACA,UAAIC,WAAW,CAAC/pB,MAAZ,GAAqB,CAAzB,EAA4B;EAAE+pB,QAAAA,WAAW,CAACA,WAAW,CAAC/pB,MAAZ,GAAqB,CAAtB,CAAX,CAAoCyC,MAApC;EAA8C;;EAC5EonB,MAAAA,aAAa;EACd;;EACD,UAAMG,WAAW,GAAG,KAAKhG,SAAL,CAAe8F,gBAAf,CAAgC,2CAAhC,EAA6E9pB,MAAjG;EACA,SAAK+jB,aAAL,CAAmBnG,KAAnB,CAAyBZ,OAAzB,GAAmCgN,WAAW,GAAG,MAAH,GAAY,OAA1D;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAiCE;EACF;EACA;EACA;EACA;EACA;EACEnF,EAAAA,gBAAgB,CAAEriB,CAAF,EAAK;EAAA;;EACnB,UAAMsc,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,UAAM+sB,YAAY,GAAGlnB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,CAArB;EAEA,WACE,6BAAKA,aAAL,4EAAoBoG,QAApB,CAA6B1nB,CAAC,CAACia,MAA/B,OAA0CwN,YAA1C,aAA0CA,YAA1C,uBAA0CA,YAAY,CAAEC,QAAd,CAAuB1nB,CAAC,CAACia,MAAzB,CAA1C,CADF;EAGD;EAED;EACF;EACA;EACA;;;EACEwL,EAAAA,mBAAmB,CAAED,OAAF,EAAW;EAC5B,UAAMmC,gBAAgB,GAAG,CAAC,KAAK9I,SAA/B;;EACA,QAAI,KAAKmC,WAAT,EAAsB;EACpBwE,MAAAA,OAAO,CAAC1U,OAAR,CAAiB9Q,CAAD,IAAO;EACrB,YAAIA,CAAC,CAAC4nB,cAAF,IAAoB,KAAKzG,gBAAL,CAAsB7kB,cAAtB,CAAqC0D,CAAC,CAACia,MAAF,CAASnjB,EAA9C,CAApB,IAAyEkJ,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,KAA4B,CAAzG,EAA4G;EAC1Gnd,UAAAA,CAAC,CAACia,MAAF,CAASsC,OAAT,CAAiBY,MAAjB,GAA0B,CAA1B;;EACA,cAAIwK,gBAAJ,EAAsB;EACpBlmB,YAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAA1C;EACA,iBAAKwN,iBAAL,CAAuB7nB,CAAC,CAACia,MAAF,CAASnjB,EAAhC,EAAoC,EAAE,GAAGkJ,CAAC,CAACia,MAAF,CAASsC,OAAd;EAAuBY,cAAAA,MAAM,EAAE;EAA/B,aAApC;EACA5N,YAAAA,UAAU,CAAC,MAAM;EACfvP,cAAAA,CAAC,CAACia,MAAF,CAASW,UAAT,CAAoBpF,cAApB,CAAmC,cAAnC,EAAmD4F,KAAnD,CAAyDZ,OAAzD,GAAmE,MAAnE;EACD,aAFS,EAEP,IAFO,CAAV;EAGD,WAND,MAMO;EACLjJ,YAAAA,OAAO,CAACkO,GAAR,CAAY,qEAAZ,EAAmF;EAAEtF,cAAAA,KAAK,EAAEna,CAAC,CAACia,MAAF,CAAS3I,UAAlB;EAA8B+I,cAAAA,OAAO,EAAEra,CAAC,CAACia,MAAF,CAASI;EAAhD,aAAnF;EACD;;EACD,eAAK+G,eAAL;EACA,eAAK4B,0BAAL;EACA,iBAAO,KAAK7B,gBAAL,CAAsBnhB,CAAC,CAACia,MAAF,CAASnjB,EAA/B,CAAP;EACD;EACF,OAhBD;EAiBD;EACF;;EAED+wB,EAAAA,iBAAiB,CAAEzqB,GAAF,EAAOL,KAAP,EAAc;EAC7B,QAAI,CAAC,KAAK8hB,SAAV,EAAqB;EACnB,YAAM8E,QAAQ,GAAGI,gBAAgB,EAAjC;EACAJ,MAAAA,QAAQ,CAACvmB,GAAD,CAAR,GAAgBL,KAAhB;EACAsnB,MAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD;EACF,GAtboC;;;EAybrC7B,EAAAA,WAAW,CAAE9hB,CAAF,EAAK;EACd,SAAKghB,WAAL,GAAmB,CAAC,KAAKA,WAAzB;EACA,SAAKC,kBAAL,GAA0B,CAAC,EAACjhB,CAAD,aAACA,CAAD,uBAACA,CAAC,CAAE8nB,IAAJ,CAA3B;;EACA,QAAI,KAAK9G,WAAT,EAAsB;EACpB,WAAKQ,SAAL,CAAemF,SAAf,GAA2B,CAA3B;EACA,OAAC,KAAK9H,SAAN,IAAmB,KAAK+E,gCAAL,EAAnB;EACA,WAAKpf,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,OAA3B;EACA,WAAKhW,KAAL,CAAW4W,KAAX,CAAiB2M,MAAjB,GAA0B,YAA1B,CAJoB;;EAKpB,UAAI,KAAKzL,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAA3B,EAAmC;EACjC,aAAKmkB,mBAAL,CAAyB5R,YAAzB,CAAsC,UAAtC,EAAkD,OAAlD;EACA,aAAK4R,mBAAL,GAA2B,KAAK/G,UAAL,CAAgBpF,cAAhB,CAA+B,YAA/B,CAA3B;EACA,aAAKyM,oBAAL,CAA0B,KAAKN,mBAAL,CAAyB9D,SAAnD;EACA,aAAKjD,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDwS,UAApD,IAAkE,KAAKpN,UAAL,CAAgBpF,cAAhB,CAA+B,mBAA/B,EAAoDyS,WAAtH;EACD;;EACD,WAAKC,gBAAL,CAAsBloB,CAAtB;EACD,KAZD,MAYO;EACL,WAAKwE,KAAL,CAAW4W,KAAX,CAAiBZ,OAAjB,GAA2B,MAA3B;EACD;EACF;;EAED0N,EAAAA,gBAAgB,CAAEloB,CAAF,EAAK;EACnB,UAAMmoB,WAAW,GAAG1mB,MAAM,CAAC2mB,UAA3B;EACA,UAAMC,iBAAiB,GAAGC,gBAAgB,CAACxmB,GAAG,CAAC0C,KAAL,CAA1C;EACA,UAAMogB,GAAG,GAAGyD,iBAAiB,CAACE,gBAAlB,CAAmC,aAAnC,CAAZ;EACA,UAAMC,MAAM,GAAGH,iBAAiB,CAACE,gBAAlB,CAAmC,gBAAnC,CAAf;EACA,UAAMxD,IAAI,GAAGsD,iBAAiB,CAACE,gBAAlB,CAAmC,cAAnC,CAAb;EACA,UAAM1D,KAAK,GAAGwD,iBAAiB,CAACE,gBAAlB,CAAmC,eAAnC,CAAd;EACA,UAAME,kBAAkB,GAAG7D,GAAG,IAAI4D,MAAP,IAAiBzD,IAAjB,IAAyBF,KAApD;;EACA,QAAIsD,WAAW,GAAG,GAAd,IAAqB,CAACM,kBAA1B,EAA8C;EAC5C,YAAMC,GAAG,GAAGC,gBAAgB,CAAC3oB,CAAD,EAAI,KAAKwE,KAAL,CAAWokB,YAAf,EAA6B,KAAKpkB,KAAL,CAAWqkB,WAAxC,CAA5B;EACA,YAAMC,IAAI,GAAGJ,GAAG,CAACI,IAAjB;EACA,YAAMC,IAAI,GAAGL,GAAG,CAACK,IAAjB;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiBwJ,GAAjB,GAAuBmE,IAAI,GAAG,IAA9B;EACA,WAAKvkB,KAAL,CAAW4W,KAAX,CAAiB2J,IAAjB,GAAwB+D,IAAI,GAAG,IAA/B;EACD;EACF;EAED;EACF;EACA;EACA;EACA;;;EAUE9F,EAAAA,0BAA0B,GAAI;EAC5B,QAAI,KAAKnE,SAAT,EAAoB;EAClB,WAAKyD,aAAL,CAAmB,KAAKlB,eAAxB;EACA;EACD;;EACD,QAAIwF,OAAO,GAAG,CAAd;EACA,SAAKpF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM0kB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAIJ,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,IAAkB6sB,QAAQ,CAAC1kB,CAAC,CAACnI,EAAH,CAAR,CAAeqmB,MAAf,KAA0B,CAAhD,EAAmD;EACjDyJ,QAAAA,OAAO;EACR;EACF,KALD;EAMA,SAAKtE,aAAL,CAAmBsE,OAAnB;EACD;;EAEDE,EAAAA,uBAAuB,GAAI;EACzB,SAAKtF,SAAL,CAAe8F,gBAAf,CAAgC,kBAAhC,EAAoDxW,OAApD,CAA6D7R,CAAD,IAAO;EACjE,YAAM+pB,EAAE,GAAG/pB,CAAC,CAACnI,EAAF,CAAKqK,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAX;EACAlC,MAAAA,CAAC,CAAC0a,MAAF,CAASnE,cAAT,CAAwB,WAAxB,EAAqCwR,UAArC,CAAgDnJ,SAAhD,GAA4DX,sBAAsB,CAAC8L,EAAD,CAAlF;EACD,KAHD;EAID;;EAEDvF,EAAAA,cAAc,GAAI;EAChB,UAAMwF,YAAY,GAAG,EAArB;EACA,UAAMC,gBAAgB,GAAG,KAAK5M,MAAL,CAAYkH,UAAZ,CAAuBhmB,MAAvB,GAAgC,EAAhC,GAAqC,EAA9D;EAEA,UAAM2lB,MAAM,GAAG;EACbhD,MAAAA,oBAAoB,EAAE,KAAK7D,MAAL,CAAY6G,MAAZ,CAAmBhD,oBAD5B;EAEbC,MAAAA,gBAAgB,EAAE,KAAK9D,MAAL,CAAY6G,MAAZ,CAAmB/C,gBAFxB;EAGbC,MAAAA,qBAAqB,EAAE,KAAK/D,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BrF,eAHpC;EAIbW,MAAAA,gBAAgB,EAAE,KAAKhE,MAAL,CAAY6G,MAAZ,CAAmB6B,MAAnB,CAA0BnF,UAJ/B;EAKbU,MAAAA,cAAc,EAAE,KAAKjE,MAAL,CAAY6G,MAAZ,CAAmB5C,cALtB;EAMbC,MAAAA,kBAAkB,EAAE,KAAKlE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B2F,QANrC;EAOb1I,MAAAA,oBAAoB,EAAE,KAAKnE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B3D,UAPvC;EAQbc,MAAAA,wBAAwB,EAAE,KAAKrE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CD,QARvD;EASbvI,MAAAA,0BAA0B,EAAE,KAAKtE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CvJ,UATzD;EAUbiB,MAAAA,oBAAoB,EAAEmI,YAAY,GAAGC;EAVxB,KAAf;;EAYA,QAAI,KAAK5M,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAAlC,EAA+C;EAC7CuD,MAAAA,MAAM,CAACzC,qBAAP,GAA+B,KAAKpE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B5D,WAA7D;EACD;;EACD,QAAI,KAAKtD,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA9C,EAA2D;EACzDuD,MAAAA,MAAM,CAACtC,2BAAP,GAAqC,KAAKvE,MAAL,CAAY6G,MAAZ,CAAmBK,UAAnB,CAA8B4F,WAA9B,CAA0CxJ,WAA/E;EACD;;EAED,UAAMyJ,WAAW,GAAGnJ,oBAAoB,CAACiD,MAAD,CAAxC;EAEA,UAAMmG,UAAU,GAAG,KAAKhN,MAAL,CAAY6G,MAAZ,CAAmBoG,KAAtC;EACA,UAAMC,SAAS,GAAG9J,aAAa,CAAC;EAC9BC,MAAAA,eAAe,EAAE2J,UAAU,CAAC3J,eADE;EAE9BC,MAAAA,WAAW,EAAE0J,UAAU,CAAC1J,WAFM;EAG9BC,MAAAA,UAAU,EAAEyJ,UAAU,CAACzJ,UAHO;EAI9BC,MAAAA,gBAAgB,EAAEwJ,UAAU,CAACxJ,gBAJC;EAK9BC,MAAAA,WAAW,EAAEuJ,UAAU,CAACvJ,WALM;EAM9BC,MAAAA,eAAe,EAAEsJ,UAAU,CAACtJ,eANE;EAO9BC,MAAAA,iBAAiB,EAAEqJ,UAAU,CAACrJ;EAPA,KAAD,CAA/B;EAUA,WAAOoJ,WAAW,GAAGG,SAArB;EACD;;EAviBoC;;ECAhC,MAAMC,uBAAuB,GAAG,UAACC,eAAD,EAAwC;EAAA,MAAtB7K,SAAsB,uEAAV,KAAU;;EAC7E,QAAM8K,SAAS,GAAGtqB,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAxE;;EACA,MAAImkB,SAAJ,EAAe;EACb/c,IAAAA,GAAG,CAAC0C,KAAJ,CAAU6c,qBAAV,GAAkCqI,eAAlC;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUqa,SAAV,GAAsB,IAAtB;EACA/c,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD,GAJD,MAIO,IAAIxjB,IAAI,CAACC,SAAL,CAAegqB,SAAf,MAA8BjqB,IAAI,CAACC,SAAL,CAAe+pB,eAAf,CAAlC,EAAmE;EACxErqB,IAAAA,cAAc,CAACqC,gBAAf,CAAgChH,eAAhC,EAAiDgvB,eAAjD;EACA5nB,IAAAA,GAAG,CAAC0C,KAAJ,IAAa1C,GAAG,CAAC0C,KAAJ,CAAU0e,IAAV,EAAb;EACD;EACF,CAVM;EAYA,MAAM0G,kBAAkB,GAAI9M,GAAD,IAAS;EACzC,MAAIA,GAAG,CAAC+M,aAAR,EAAuB;EACrB/nB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUoe,0BAAV,GAAuC9F,GAAG,CAACgN,YAA3C;EACD,GAFD,MAEO;EACLhoB,IAAAA,GAAG,CAAC0C,KAAJ,CAAUie,gBAAV,GAA6B3F,GAA7B;EACD;EACF,CANM;EAiBA,MAAMiN,WAAW,GAAI5sB,MAAD,IAAY;EACrC6sB,EAAAA,gCAAgC;EAChCloB,EAAAA,GAAG,CAAC0C,KAAJ,GAAY,IAAIuc,KAAJ,CAAU;EAAE5jB,IAAAA;EAAF,GAAV,CAAZ;EACAoD,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BpO,GAAG,CAAC0C,KAA9B;EACD,CAJM;;EAMP,MAAMylB,0BAA0B,GAAI9hB,IAAD,IAAU;EAC3C,QAAMwb,QAAQ,GAAGtkB,cAAc,CAAC2C,kBAAf,CAAkCrH,QAAlC,KAA+C,EAAhE,CAD2C;;EAG3C,MAAIkB,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAA/B,IAAoC3B,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsB,CAAtB,EAAyBnZ,QAAzB,CAAkC,GAAlC,CAAxC,EAAgF;EAC9E,UAAM0f,WAAW,GAAG,EAApB;EACAA,IAAAA,WAAW,CAAC/hB,IAAD,CAAX,GAAoBwb,QAApB;EACAtkB,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0CuvB,WAA1C;EACA,WAAOA,WAAP;EACD;;EACD,SAAOvG,QAAP;EACD,CAVD;;EAYO,MAAMI,gBAAgB,GAAG,MAAM;EACpC,QAAM5b,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE,WAAO,EAAP;EAAW;;EACtC,QAAMwb,QAAQ,GAAGsG,0BAA0B,CAAC9hB,IAAD,CAA3C;EAEA,SAAOwb,QAAQ,CAACrnB,cAAT,CAAwB6L,IAAxB,IAAgCwb,QAAQ,CAACxb,IAAD,CAAxC,GAAiD,EAAxD;EACD,CANM;EAQA,MAAMkc,iBAAiB,GAAIV,QAAD,IAAc;EAC7C,QAAMxb,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,MAAI,CAAC8E,YAAY,CAACqL,IAAD,CAAjB,EAAyB;EAAE;EAAQ;;EACnC,QAAMgiB,cAAc,GAAGF,0BAA0B,CAAC9hB,IAAD,CAAjD;EAEA,QAAMsI,MAAM,GAAG,EAAE,GAAG0Z,cAAL;EAAqB,KAAChiB,IAAD,GAAQwb;EAA7B,GAAf;EACAtkB,EAAAA,cAAc,CAACqC,gBAAf,CAAgC/G,QAAhC,EAA0C8V,MAA1C;EACD,CAPM;EASA,MAAM2Z,kBAAkB,GAAIjtB,MAAD,IAAY;EAC5C,SAAO,IAAIktB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,UAAMC,UAAU,GAAG,UAACC,SAAD,EAAgD;EAAA,UAApCC,QAAoC,uEAAzB,GAAyB;EAAA,UAApBC,UAAoB,uEAAP,EAAO;EACjE,aAAO,IAAIN,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,YAAIK,QAAQ,GAAG,CAAf;EACA,cAAMC,KAAK,GAAGC,WAAW,CAAC,MAAM;EAC9B3tB,UAAAA,MAAM,CAACkG,KAAP,0BAA+BunB,QAAQ,GAAG,CAA1C;;EACA,cAAIH,SAAS,EAAb,EAAiB;EACfM,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFQ;EAGhB,WAHD,MAGO,IAAIxoB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EAC7BumB,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAP,YAAAA,OAAO,GAFsB;EAG9B,WAHM,MAGA,IAAIM,QAAQ,IAAID,UAAhB,EAA4B;EACjCI,YAAAA,aAAa,CAACF,KAAD,CAAb;EACAN,YAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,sCAAV,CAAD,CAAN;EACD;;EACDJ,UAAAA,QAAQ;EACT,SAbwB,EAatBF,QAbsB,CAAzB;EAcD,OAhBM,CAAP;EAiBD,KAlBD;;EAoBA,UAAMO,cAAc,GAAG,MAAM;EAC3B,UAAInpB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBulB,QAAAA,WAAW,CAAC5sB,MAAD,CAAX;EACD;EACF,KAJD;;EAMA,UAAM+tB,qBAAqB,GAAG,MAAM;EAClC,YAAM5O,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;;EACA,UAAI,CAAC4hB,MAAM,CAACgF,aAAZ,EAA2B;EACzBnkB,QAAAA,MAAM,CAACkG,KAAP,CAAa,kCAAb;EACA,eAAO,KAAP;EACD;;EACD,aAAO9C,QAAQ,CAACiV,cAAT,CAAwB8G,MAAM,CAACgF,aAA/B,KAAiDxf,GAAG,CAAC0C,KAAJ,KAAc,IAAtE;EACD,KAPD;;EASA,UAAM2mB,SAAS,GAAG,MAAM;EACtBhuB,MAAAA,MAAM,CAACkG,KAAP,CAAa,qBAAb;EACD,KAFD;;EAIA,QAAI+nB,YAAY,GAAG,KAAnB,CAxCsC;;EAyCtC,UAAMC,UAAU,GAAG,MAAM;EACvB,UAAI,CAACD,YAAL,EAAmB;EACjBA,QAAAA,YAAY,GAAG,IAAf;EACAZ,QAAAA,UAAU,CAACU,qBAAD,EAAwB,GAAxB,EAA6B,EAA7B,CAAV,CACGI,IADH,CACQ,MAAM;EACVL,UAAAA,cAAc;EACdX,UAAAA,OAAO;EACR,SAJH,EAKGiB,KALH,CAKSJ,SALT;EAMD;EACF,KAVD;;EAYA,UAAMK,mBAAmB,GAAG,MAAM;EAChC,UAAIjrB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,QAAAA,UAAU;EACX,OAFD,MAEO;EACL5pB,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgCuQ,UAAhC;EACA9qB,QAAAA,QAAQ,CAACua,gBAAT,CACE,kBADF,EAEE,MAAM;EACJ,cAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCJ,YAAAA,UAAU;EACX;EACF,SANH;EAQD;EACF,KAdD;;EAgBAG,IAAAA,mBAAmB;EACpB,GAtEM,CAAP;EAuED,CAxEM;EA0EA,MAAMxB,gCAAgC,GAAG,MAAM;EACpD,MAAI0B,cAAc,CAAClmB,GAAf,CAAmB,cAAnB,MAAuCxI,SAA3C,EAAsD;EACpD0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,cAAtB,EAAsC5K,KAAtC;EACA2K,IAAAA,cAAc,CAACC,MAAf,CAAsB,kBAAtB,EAA0CtP,OAA1C;EACD;EACF,CALM;EAOA,MAAMsM,gBAAgB,GAAG,CAAC3oB,CAAD,EAAI4rB,WAAJ,EAAiBC,UAAjB,KAAgC;EAC9D,QAAMC,gBAAgB,GAAGvrB,QAAQ,CAACwrB,gBAAT,CAA0B/D,UAAnD;EACA,QAAMgE,cAAc,GAAGzrB,QAAQ,CAACwrB,gBAAT,CAA0BpF,SAAjD;EACA,QAAMwB,WAAW,GAAG1mB,MAAM,CAACwqB,UAAP,GAAoBH,gBAAxC;EACA,QAAMI,YAAY,GAAGzqB,MAAM,CAAC0qB,WAAP,GAAqBH,cAA1C;EACA,QAAMI,YAAY,GAAGpsB,CAAC,CAAC8nB,IAAF,IAAU9nB,CAAC,CAACia,MAAF,CAAS6K,qBAAT,EAA/B;EACA,QAAMuH,SAAS,GAAGD,YAAY,CAACE,CAAb,GAAiBR,gBAAnC;EACA,QAAMS,SAAS,GAAGH,YAAY,CAACltB,CAAb,GAAiB8sB,cAAnC;EACA,QAAMQ,YAAY,GAAGJ,YAAY,CAACrH,IAAb,GAAoB+G,gBAAzC;EACA,QAAMW,aAAa,GAAGL,YAAY,CAACvH,KAAb,GAAqBiH,gBAA3C;EACA,QAAMY,WAAW,GAAGN,YAAY,CAACxH,GAAb,GAAmBoH,cAAvC,CAV8D;;EAY9D,QAAMW,cAAc,GAAGP,YAAY,CAAC5D,MAApC;EACA,QAAMoE,cAAc,GAAGR,YAAY,CAAChQ,MAApC;EACA,QAAMyQ,aAAa,GAAGT,YAAY,CAAC3Q,KAAnC;EACA,QAAMqR,cAAc,GAAG;EACrBR,IAAAA,CAAC,EAAED,SAAS,GAAIQ,aAAa,GAAG,CADX;EAErB3tB,IAAAA,CAAC,EAAEqtB,SAAS,GAAIK,cAAc,GAAG;EAFZ,GAAvB;EAIA,QAAMG,iBAAiB,GAAInB,WAAW,GAAG,CAAzC;EACA,QAAMoB,gBAAgB,GAAInB,UAAU,GAAG,CAAvC;EACA,MAAIoB,WAAW,GAAG,KAAlB;EAEA,MAAInE,IAAJ,EAAUC,IAAV;EAEA,QAAMhd,OAAO,GAAG,EAAhB;EAEA;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACE,MAAI4gB,cAAc,GAAGf,WAAjB,IAAgCM,YAApC,EAAkD;EAAE;EAClD,UAAMgB,eAAe,GAAGhB,YAAY,IAAIS,cAAc,GAAGf,WAArB,CAApC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B4gB,cAAc,GAAG5gB,OAA9C,GAAwD4gB,cAAc,GAAGO,eAAhF;EACD,GAHD,MAGO,IAAIR,WAAW,GAAGd,WAAd,IAA6BI,cAAjC,EAAiD;EAAE;EACxD,UAAMkB,eAAe,GAAGR,WAAW,GAAGd,WAAtC;EACA7C,IAAAA,IAAI,GAAGmE,eAAe,IAAInhB,OAAnB,GAA6B2gB,WAAW,GAAGd,WAAd,GAA4B7f,OAAzD,GAAmE2gB,WAAW,GAAGd,WAAd,GAA4BsB,eAAtG;EACD,GAHM,MAGA;EACLD,IAAAA,WAAW,GAAG,IAAd;EACAlE,IAAAA,IAAI,GAAG+D,cAAc,CAAC5tB,CAAf,GAAmB6tB,iBAA1B,CAFK;;EAGL,QAAIhE,IAAI,GAAGiD,cAAX,EAA2B;EACzBjD,MAAAA,IAAI,GAAGiD,cAAP;EACD,KAFD,MAEO,IAAIjD,IAAI,GAAG6C,WAAP,GAAqBM,YAAzB,EAAuC;EAC5CnD,MAAAA,IAAI,GAAGmD,YAAY,GAAGN,WAAtB;EACD;EACF;;EAED,MAAIqB,WAAJ,EAAiB;EACf;EACA,UAAME,UAAU,GAAGV,aAAa,GAAGZ,UAAnC;;EACA,QAAIsB,UAAU,IAAIhF,WAAlB,EAA+B;EAC7B,YAAMiF,cAAc,GAAGD,UAAU,GAAGphB,OAAb,IAAwBoc,WAAxB,GAAsCpc,OAAtC,GAAgDoc,WAAW,GAAGgF,UAArF;EACArE,MAAAA,IAAI,GAAG2D,aAAa,GAAGW,cAAvB;EACD,KAHD,MAGO;EACL,YAAMC,SAAS,GAAGb,YAAY,GAAGX,UAAjC;EACA,YAAMuB,cAAc,GAAGC,SAAS,GAAGthB,OAAZ,IAAuB+f,gBAAvB,GAA0C/f,OAA1C,GAAoDshB,SAAS,GAAGvB,gBAAvF;EACAhD,MAAAA,IAAI,GAAGuE,SAAS,GAAGD,cAAnB;EACD;EACF,GAXD,MAWO;EACLtE,IAAAA,IAAI,GAAGgE,cAAc,CAACR,CAAf,GAAmBU,gBAA1B;;EACA,QAAIlE,IAAI,GAAGgD,gBAAX,EAA6B;EAC3B,UAAIU,YAAY,GAAGX,UAAf,IAA6B1D,WAAjC,EAA8C;EAC5CW,QAAAA,IAAI,GAAG0D,YAAP;EACD,OAFD,MAEO;EACL1D,QAAAA,IAAI,GAAGgD,gBAAP;EACD;EACF,KAND,MAMO,IAAIhD,IAAI,GAAG+C,UAAP,GAAoB1D,WAAxB,EAAqC;EAC1C,UAAIsE,aAAa,GAAGZ,UAAhB,IAA8BC,gBAAlC,EAAoD;EAClDhD,QAAAA,IAAI,GAAG2D,aAAa,GAAGZ,UAAvB;EACD,OAFD,MAEO;EACL/C,QAAAA,IAAI,GAAGX,WAAW,GAAG0D,UAArB;EACD;EACF;EACF;;EAED,SAAO;EAAE/C,IAAAA,IAAF;EAAQC,IAAAA;EAAR,GAAP;EACD,CA3FM;EA6FA,MAAM7L,sBAAsB,GAAI8L,EAAD,IAAQ;EAC5C,QAAMlG,GAAG,GAAG5mB,IAAI,CAAC4mB,GAAL,EAAZ;EACA,MAAIwK,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAW,CAACykB,GAAG,GAAGkG,EAAP,IAAa,KAAxB,CAAX;;EACA,MAAIsE,IAAI,GAAG,CAAX,EAAc;EACZ,WAAO,UAAP;EACD;;EACD,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,oBAAwBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAzC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;;EACA,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,qBAAUA,IAAV,kBAAsBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAvC;EACD;;EACDA,EAAAA,IAAI,GAAGlvB,IAAI,CAACC,KAAL,CAAWivB,IAAI,GAAG,EAAlB,CAAP;EACA,mBAAUA,IAAV,iBAAqBA,IAAI,GAAG,CAAP,GAAW,GAAX,GAAiB,EAAtC;EACD,CAfM;EAiBA,MAAMC,uBAAuB,GAAG,MAAM;EAC3C,SAAO1xB,MAAM,CAACgV,IAAP,CAAYxR,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAAlE,EAAsE8C,MAAtE,GAA+E,CAAtF;EACD,CAFM;EAIA,MAAMooB,QAAQ,4lBAAd;EAIA,MAAMnH,YAAY,4pBAAlB;;EC7QA,MAAM+O,YAAY,GAAG,qFAArB;EACA,MAAMC,QAAQ,GAAG,oFAAjB;EACA,MAAMC,SAAS,GAAG;EACvBC,EAAAA,YAAY,EAAE,uBADS;EAEvBC,EAAAA,YAAY,EAAE,uBAFS;EAGvBC,EAAAA,UAAU,EAAE;EAHW,CAAlB;;ECFA,MAAMC,cAAc,GAAG,UAACC,OAAD,EAAUC,SAAV,EAAqBjP,OAArB,EAAoD;EAAA,MAAtBF,SAAsB,uEAAV,KAAU;;EAChF,MAAImP,SAAS,KAAKhxB,SAAlB,EAA6B;EAC3B;EACA,QAAIgxB,SAAS,CAAC5S,KAAV,KAAoBpe,SAAxB,EAAmC;EACjCnB,MAAAA,MAAM,CAACgV,IAAP,CAAYmd,SAAS,CAAC5S,KAAtB,EAA6BtK,OAA7B,CAAsCnP,QAAD,IAAc;EACjDosB,QAAAA,OAAO,CAAC3S,KAAR,CAAcO,WAAd,CAA0Bha,QAA1B,EAAoCqsB,SAAS,CAAC5S,KAAV,CAAgBzZ,QAAhB,CAApC;EACD,OAFD;EAGD,KAN0B;;;EAS3B,QAAIqsB,SAAS,CAACC,SAAV,KAAwBjxB,SAA5B,EAAuC;EACrC,YAAMkxB,iBAAiB,GAAGH,OAAO,CAAC3S,KAAR,CAAc+S,cAAxC;;EACA,UAAIH,SAAS,CAACC,SAAd,EAAyB;EACvBF,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+B,UAAGD,iBAAH,gBAAiCjsB,IAAjC,EAA/B;EACD,OAFD,MAEO;EACL8rB,QAAAA,OAAO,CAAC3S,KAAR,CAAc+S,cAAd,GAA+BD,iBAAiB,CAACrwB,OAAlB,CAA0B,WAA1B,EAAuC,EAAvC,EAA2CoE,IAA3C,EAA/B;EACD;EACF,KAhB0B;;;EAmB3B,QAAI+rB,SAAS,CAAC3P,IAAV,KAAmBrhB,SAAvB,EAAkC;EAChC+wB,MAAAA,OAAO,CAAClQ,SAAR,GAAoBgB,SAAS,GAAGmP,SAAS,CAAC3P,IAAV,CAAeA,IAAlB,GAAyB2P,SAAS,CAAC3P,IAAhE;EACD,KArB0B;;;EAwB3B,QAAI2P,SAAS,CAACI,YAAV,KAA2BpxB,SAA/B,EAA0C;EACxC,YAAM8N,GAAG,GAAGkjB,SAAS,CAACI,YAAV,CAAuBC,QAAnC;EACAN,MAAAA,OAAO,CAACO,OAAR,GAAkBN,SAAS,CAACI,YAAV,CAAuBG,MAAvB,GACd,MAAM;EACN,YAAI,CAAC1P,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,EAA2BsU,KAA3B;EACD,OANe,GAOd,MAAM;EACN,YAAI,CAACP,SAAL,EAAgB;EACdpd,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,CAA0CzP,OAA1C;EACD;;EACDtd,QAAAA,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAvB;EACD,OAZH;EAaD,KAvC0B;;;EA0C3B,QAAIkjB,SAAS,CAACS,MAAV,KAAqBzxB,SAArB,IAAkC+wB,OAAO,CAAC/O,OAAR,CAAgBxH,WAAhB,OAAkC,KAAxE,EAA+E;EAC7EuW,MAAAA,OAAO,CAACW,GAAR,GAAcV,SAAS,CAACS,MAAxB;EACD;EACF;EACF,CA/CM;EAiDA,MAAME,gBAAgB,GAAIZ,OAAD,IAAa;EAC3C;EACA,MAAIA,OAAO,CAACa,UAAR,KAAuB5xB,SAA3B,EAAsC;EACpC,UAAMoe,KAAK,GAAG7a,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAAd;EACA4P,IAAAA,KAAK,CAACV,SAAN,GAAkBqT,OAAO,CAACa,UAA1B;EACAruB,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0BkL,KAA1B;EACD;EACF,CAPM;;EC9CA,MAAM0T,gBAAgB,GAAG,CAAC3xB,MAAD,EAASjG,SAAT,KAAuB;EACrD,QAAM63B,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;;EAEA,MAAIypB,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;;EACA,YAAQF,MAAR;EACE,WAAK,WAAL;EACE9xB,QAAAA,MAAM,CAACkG,KAAP,CAAa,6BAAb;EACA5B,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,kBAAL;EACEhK,QAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAmCsU,kBAAnC,EAAuD,KAAvD;;EACA,YAAIF,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB;EAAE9S,YAAAA,OAAO,EAAE,SAAX;EAAsB+S,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J;EAAjD,WAAzB,EAAkF,GAAlF;EACD;;EACD;;EACF,WAAK,mBAAL;EACE,YAAIyjB,YAAJ,EAAkB;EAChB,gBAAMK,UAAU,GAAG,QAAnB;EACAL,UAAAA,YAAY,CAACG,WAAb,CAAyB;EACvB9S,YAAAA,OAAO,EAAE,YADc;EAEvBrlB,YAAAA,SAFuB;EAGvBo4B,YAAAA,SAAS,EAAE7tB,MAAM,CAACG,QAAP,CAAgB6J,IAHJ;EAIvB8jB,YAAAA;EAJuB,WAAzB,EAMA,GANA;EAQD;;EACD;EA1BJ;EA8BD;EACF,CArCM;;EAuCP,MAAMH,kBAAkB,GAAII,KAAD,IAAW;EACpC,MAAIA,KAAK,CAAC3vB,IAAN,IAAc4vB,UAAU,CAACD,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAZ,CAA5B,EAAoD;EAClD,UAAMI,SAAS,GAAG,IAAIC,GAAJ,CAAQH,KAAK,CAAC3vB,IAAN,CAAWyvB,SAAnB,EAA8BM,MAAhD;;EACA,QAAIJ,KAAK,CAACI,MAAN,KAAiBF,SAArB,EAAgC;EAC9B;EACD;EACF,GALD,MAKO;EACL;EACD;;EACD,MAAIF,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,WAA3B,EAAwC;EAAA;;EACtC;EACA9a,IAAAA,MAAM,CAACouB,SAAP,GAAmBL,KAAK,CAAC3vB,IAAN,CAAWiwB,eAAX,CAA2BD,SAA9C;EACAE,IAAAA,mBAAmB,CACjBP,KAAK,CAAC3vB,IAAN,CAAWiL,GADM,yBAEjB0kB,KAAK,CAAC3vB,IAAN,CAAWmwB,OAFM,qEAEK,IAFL,yBAGjBR,KAAK,CAAC3vB,IAAN,CAAWowB,OAHM,qEAGK,EAHL,EAIjBT,KAAK,CAAC3vB,IAAN,CAAWiwB,eAJM,CAAnB;EAMD,GATD,MASO,IAAIN,KAAK,CAAC3vB,IAAN,CAAW0c,OAAX,KAAuB,SAA3B,EAAsC;EAC3C2T,IAAAA,mBAAmB,CAACV,KAAK,CAAC3vB,IAAP,EAAa,IAAb,CAAnB;EACD;EACF,CArBD;EAsBA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,MAAMkwB,mBAAmB,GAAG,CAACjlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,KAA4C;EACtE,MAAIvvB,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,IAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD,GAFD,MAEO;EACLvvB,IAAAA,QAAQ,CAACua,gBAAT,CAA0B,kBAA1B,EAA8C,MAAM;EAClD,UAAIva,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtC0E,QAAAA,aAAa,CAACrlB,GAAD,EAAMklB,OAAN,EAAeC,OAAf,EAAwBH,eAAxB,CAAb;EACD;EACF,KAJD;EAKD;EACF,CAVD;;EAYA,IAAIjW,SAAJ;EACA,IAAIuW,aAAa,GAAG,KAApB;EACA,IAAIC,SAAS,GAAG,KAAhB;EACA;EACA;EACA;;EACA,SAASF,aAAT,CAAwBrlB,GAAxB,EAA6BklB,OAA7B,EAAsCC,OAAtC,EAA+CH,eAA/C,EAAgE;EAC9D,MAAI,CAACM,aAAL,EAAoB;EAClB,QAAI3uB,MAAM,CAAC6uB,OAAX,EAAoB;EAClBD,MAAAA,SAAS,GAAG,IAAZ;EACD;;EACD9vB,IAAAA,QAAQ,CAACkkB,IAAT,CAAc/J,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACsuB,IAAT,CAAcnU,SAAd,GAA0B,EAA1B;EACAna,IAAAA,QAAQ,CAACgwB,eAAT,CAAyB7V,SAAzB,GAAqC,EAArC;EACAb,IAAAA,SAAS,GAAGtZ,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAZ;EACAqO,IAAAA,SAAS,CAAC/iB,EAAV,GAAe,YAAf;EACA+iB,IAAAA,SAAS,CAACuB,KAAV,CAAgBoV,QAAhB,GAA2B,UAA3B,CATkB;;EAUlB3W,IAAAA,SAAS,CAACuB,KAAV,CAAgBZ,OAAhB,GAA0B,MAA1B;EACAja,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0B2J,SAA1B;EACA,UAAM4W,WAAW,GAAGjD,YAApB;EACAkD,IAAAA,iBAAiB,CAACD,WAAD,EAAc3lB,GAAd,EAAmBklB,OAAnB,EAA4BC,OAA5B,EAAqCH,eAArC,CAAjB,CACGxE,IADH,CACQ,MAAM;EACV/Z,MAAAA,OAAO,CAACkO,GAAR,CAAY,qCAAZ;EACA2Q,MAAAA,aAAa,GAAG,IAAhB;EACD,KAJH,EAKG7E,KALH,CAKUnjB,KAAD,IAAW;EAChBmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAc,+BAAd,EAA+CA,KAA/C;EACD,KAPH;EAQAuoB,IAAAA,OAAO;EACR;EACF;EAED;EACA;EACA;;;EACA,SAASA,OAAT,GAAoB;EAClB,MAAIC,IAAI,GAAGrwB,QAAQ,CAACiL,aAAT,CAAuB,MAAvB,CAAX;EACAolB,EAAAA,IAAI,CAACC,GAAL,GAAW,YAAX;EACAD,EAAAA,IAAI,CAACnmB,IAAL,GAAY,UAAZ;EACAmmB,EAAAA,IAAI,CAACnlB,IAAL,GAAYgiB,QAAZ;EACAltB,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0gB,IAA1B;EACD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASF,iBAAT,CAA4BD,WAA5B,EAAyC3lB,GAAzC,EAA8CklB,OAA9C,EAAuDC,OAAvD,EAAgEH,eAAhE,EAAiF;EAC/E,SAAO,IAAIzF,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;EACtC,QAAIuG,MAAM,GAAGvwB,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAb;EACAslB,IAAAA,MAAM,CAACrmB,IAAP,GAAc,QAAd;EACAqmB,IAAAA,MAAM,CAACpC,GAAP,GAAa+B,WAAb;;EACAK,IAAAA,MAAM,CAACC,MAAP,GAAgB,YAAY;EAC1B,UAAI,OAAOtvB,MAAM,CAACuvB,OAAd,KAA0B,UAA9B,EAA0C;EACxCvvB,QAAAA,MAAM,CAACuvB,OAAP,CAAe;EAAEl6B,UAAAA,EAAE,EAAE,aAAN;EAAqBgU,UAAAA,GAArB;EAA0BklB,UAAAA,OAA1B;EAAmCC,UAAAA,OAAnC;EAA4CI,UAAAA,SAA5C;EAAuDP,UAAAA;EAAvD,SAAf;EACAxF,QAAAA,OAAO;EACR,OAHD,MAGO;EACLC,QAAAA,MAAM,CAAC,IAAIS,KAAJ,CAAU,uCAAV,CAAD,CAAN;EACD;EACF,KAPD;;EAQA8F,IAAAA,MAAM,CAACG,OAAP,GAAiB,UAAU7oB,KAAV,EAAiB;EAChCmiB,MAAAA,MAAM,CAACniB,KAAD,CAAN;EACD,KAFD;;EAGA7H,IAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B4gB,MAA1B;EACD,GAhBM,CAAP;EAiBD;EAED;EACA;EACA;EACA;EACA;;;EACO,MAAMZ,mBAAmB,GAAG,CAACgB,gBAAD,EAAmBrS,SAAnB,KAAiC;EAClE,QAAMsS,gBAAgB,GAAG,EAAzB;EACA,QAAMlB,OAAO,GAAGpR,SAAS,GAAGqS,gBAAgB,CAACjB,OAApB,GAA8BiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAhF;EACA,MAAInlB,GAAG,GAAGrJ,MAAM,CAACG,QAAP,CAAgB6J,IAA1B;;EACA,MAAIoT,SAAJ,EAAe;EACb,UAAMuS,UAAU,GAAG,IAAIzB,GAAJ,CAAQ7kB,GAAR,CAAnB;EACAsmB,IAAAA,UAAU,CAACrC,YAAX,CAAwBsC,MAAxB,CAA+B,cAA/B;EACAvmB,IAAAA,GAAG,GAAGsmB,UAAU,CAACr1B,QAAX,EAAN;EACD;;EACD,MAAIu1B,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADV;EAEdC,IAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAFZ,GAAhB;;EAKA,QAAMiX,WAAW,GAAG,MAAM;EACxB,QAAI,CAAC1S,SAAD,IAAc,CAACyS,kBAAnB,EAAuC;EACrCA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMyS,YAAY,GAAIzS,OAAD,IAAa;EAChCtd,IAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2CuD,OAA3C;EACD,GAFD;;EAIA,QAAM0S,cAAc,GAAG,CAAC1D,OAAD,EAAU2D,QAAV,KAAuB;EAAA;;EAC5C,QAAIA,QAAQ,CAAC9C,UAAb,EAAyB;EACvBD,MAAAA,gBAAgB,CAAC+C,QAAD,CAAhB;EACD;;EACD,iCAAIA,QAAQ,CAACC,gBAAb,0DAAI,sBAA2BvxB,IAA/B,EAAqC;EACnC2tB,MAAAA,OAAO,CAACjT,gBAAR,CAAyB,OAAzB,EAAkC,MAAM;EACtC,cAAM8W,cAAc,GAAG;EACrBzX,UAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OADH;EAErBC,UAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W,UAFL;EAGrBuX,UAAAA,OAAO,EAAE;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACC,gBAAT,CAA0BvxB;EAA3C;EAHY,SAAvB;EAKAoxB,QAAAA,YAAY,CAACI,cAAD,CAAZ;EACD,OAPD;EAQD;;EACD,QAAIF,QAAQ,CAAC/nB,MAAb,EAAqB;EACnB,cAAQ+nB,QAAQ,CAAC/nB,MAAT,CAAgBooB,MAAxB;EACE,aAAK,MAAL;EACE,cAAIlT,SAAJ,EAAe;EACbkP,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAAhB,CAAqBuC,IAAzC;EACD,WAFD,MAEO;EACL0P,YAAAA,OAAO,CAACiE,SAAR,GAAoBN,QAAQ,CAAC/nB,MAAT,CAAgBmS,IAApC;EACD;;EACD;;EACF,aAAK,MAAL;EACEmW,UAAAA,gBAAgB,CAACf,gBAAD,EAAmBQ,QAAQ,CAAC/nB,MAA5B,EAAoCkV,SAApC,CAAhB;EACA;;EACF,aAAK,MAAL;EACEE,UAAAA,OAAO,CAAC8S,OAAR,GAAkB;EAAEC,YAAAA,aAAa,EAAEJ,QAAQ,CAACA;EAA1B,WAAlB;EACA5D,UAAAA,cAAc,CAACC,OAAD,EAAU2D,QAAQ,CAAC/nB,MAAT,CAAgBuoB,IAA1B,EAAgCnT,OAAhC,EAAyCF,SAAzC,CAAd;EACA;EAdJ;EAgBD;EACF,GAhCD;;EAkCA,QAAMsT,iBAAiB,GAAIT,QAAD,IAAc;EACtC,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIuH,YAAJ;;EACA,UAAI;EACFA,QAAAA,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuBZ,QAAQ,CAACA,QAAhC,CAAf;EACD,OAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,UAAIF,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAeX,QAAf,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDiS,QAAxD;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAb6B,EAa3B,GAb2B,CAA9B;EAcD,GAhBD;;EAkBAnC,EAAAA,OAAO,CAACnf,OAAR,CAAgB9R,CAAC,IAAI;EACnB,QAAIA,CAAC,CAAC8L,GAAF,KAAUA,GAAd,EAAmB;EACjB9L,MAAAA,CAAC,CAACwzB,YAAF,CAAe1hB,OAAf,CAAuBlK,CAAC,IAAI;EAC1B,YAAI,CAACA,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,YAApB,KAAqC5D,CAAC,CAAC8qB,QAAF,CAAWlnB,QAAX,CAAoB,eAApB,CAAtC,KACF5D,CAAC,CAAC+C,MAAF,CAAS8oB,WADX,EACwB;EACtBtB,UAAAA,gBAAgB,CAAC5rB,IAAjB,CAAsBqB,CAAtB;EACD,SAHD,MAGO;EACL,cAAImnB,OAAJ;;EACA,cAAI;EACFA,YAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,CAAuB1rB,CAAC,CAAC8qB,QAAzB,CAAV;EACD,WAFD,CAEE,OAAOa,CAAP,EAAU;;EACZ,cAAIxE,OAAJ,EAAa;EACXwD,YAAAA,WAAW;EACXE,YAAAA,cAAc,CAAC1D,OAAD,EAAUnnB,CAAV,CAAd;EACD,WAHD,MAGO;EACLurB,YAAAA,iBAAiB,CAACvrB,CAAD,CAAjB;EACD;EACF;EACF,OAhBD;EAiBD;EACF,GApBD;;EAsBA,QAAM8rB,QAAQ,GAAIhB,QAAD,IAAc;EAC7B,UAAM;EAAEiB,MAAAA,GAAF;EAAOC,MAAAA;EAAP,QAAmBC,mBAAmB,CAACnB,QAAQ,CAACA,QAAV,CAA5C;EACA,QAAIrnB,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,UAAIiD,OAAO,GAAG,IAAd;;EACA,UAAI;EACF,cAAM+E,SAAS,GAAGvyB,QAAQ,CAAC+xB,aAAT,CAAuBM,OAAvB,CAAlB;EACA,cAAMG,IAAI,GAAGxyB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAb;EACA7E,QAAAA,OAAO,GAAGgF,IAAI,IAAID,SAAlB;EACD,OAJD,CAIE,OAAOP,CAAP,EAAU;EACVxE,QAAAA,OAAO,GAAGxtB,QAAQ,CAAC+xB,aAAT,0BAAwCM,OAAxC,SAAV;EACD;;EACD,UAAI7E,OAAJ,EAAa;EACX,cAAMiF,OAAO,GAAGzyB,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAhB;EACAwnB,QAAAA,OAAO,CAACtY,SAAR,GAAoBgX,QAAQ,CAAC/nB,MAAT,CAAgB8oB,WAApC;EACA,cAAMQ,UAAU,GAAGD,OAAO,CAACE,iBAA3B;EACAnF,QAAAA,OAAO,CAACoF,qBAAR,CAA8BR,GAA9B,EAAmCM,UAAnC;;EACA,YAAI,CAAClF,OAAO,CAACpX,YAAR,CAAqB,aAArB,CAAL,EAA0C;EACxCoX,UAAAA,OAAO,CAAChe,YAAR,CAAqB,aAArB,EAAoC6iB,OAApC;EACD;;EACD,cAAMQ,eAAe,GAAG7yB,QAAQ,CAAC+xB,aAAT,0BAAwCZ,QAAQ,CAACA,QAAjD,SAAxB;EACAH,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAAC2B,eAAD,EAAkB1B,QAAlB,CAAd;EACA3G,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAZD,MAYO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,oDAAwDmT,OAAxD;EACA7H,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAzB6B,EAyB3B,GAzB2B,CAA9B;EA0BD,GA7BD;;EA+BA,MAAIjB,gBAAgB,CAAC3zB,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,UAAM61B,SAAS,GAAGlC,gBAAgB,CAACjN,IAAjB,CAAsB,CAAC3Y,CAAD,EAAI4S,CAAJ,KAAU;EAChD,YAAMmV,IAAI,GAAGC,QAAQ,CAAChoB,CAAC,CAACmmB,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,YAAMqyB,IAAI,GAAGD,QAAQ,CAACpV,CAAC,CAACuT,QAAF,CAAWvwB,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAAD,EAA2B,EAA3B,CAArB;EACA,aAAOmyB,IAAI,GAAGE,IAAd;EACD,KAJiB,CAAlB;EAKAH,IAAAA,SAAS,CAACviB,OAAV,CAAkB4hB,QAAlB;EACD;EACF,CA3IM;;EA6IP,SAASG,mBAAT,CAA8Bn3B,KAA9B,EAAqC;EACnC,QAAMkC,KAAK,GAAG,qCAAd;EACA,QAAMqN,KAAK,GAAGvP,KAAK,CAACuP,KAAN,CAAYrN,KAAZ,CAAd;;EAEA,MAAIqN,KAAJ,EAAW;EACT,WAAO;EAAE0nB,MAAAA,GAAG,EAAE1nB,KAAK,CAAC,CAAD,CAAZ;EAAiB2nB,MAAAA,OAAO,EAAE3nB,KAAK,CAAC,CAAD;EAA/B,KAAP;EACD;;EACD,SAAO;EAAE0nB,IAAAA,GAAG,EAAE,aAAP;EAAsBC,IAAAA,OAAO,EAAE;EAA/B,GAAP;EACD;EAED;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASX,gBAAT,CAA2Bf,gBAA3B,EAA6CQ,QAA7C,EAA0E;EAAA,MAAnB7S,SAAmB,uEAAP,KAAO;EACxE,QAAM4U,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAIoX,QAAQ,CAACgC,IAAT,IAAiB,IAArB,EAA2B;EACzB,QAAI7U,SAAJ,EAAe;EACb4U,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAT,CAAcrV,IAA5B;EACD,KAFD,MAEO;EACLoV,MAAAA,MAAM,CAACC,IAAP,GAAchC,QAAQ,CAACgC,IAAvB;EACD;EACF;;EACD,QAAMC,YAAY,GAAG,IAAIC,WAAJ,CAAgB,8BAAhB,EAAgD;EAAEC,IAAAA,MAAM,EAAEJ;EAAV,GAAhD,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD;;EAED,SAASlE,UAAT,CAAqBsE,MAArB,EAA6B;EAC3B,MAAI;EACF,UAAMjpB,GAAG,GAAG,IAAI6kB,GAAJ,CAAQoE,MAAR,CAAZ;EACA,WAAOC,OAAO,CAAClpB,GAAD,CAAd;EACD,GAHD,CAGE,OAAOmpB,IAAP,EAAa;EACb,WAAO,KAAP;EACD;EACF;;EAEM,SAASC,cAAT,CAAyBC,WAAzB,EAAsC;EAC3C,QAAM;EAAEC,IAAAA,qBAAqB,GAAG,EAA1B;EAA8BC,IAAAA,SAAS,GAAG;EAA1C,MAAmDF,WAAzD;EACA,QAAMG,aAAa,GAAG,EAAtB,CAF2C;;EAG3C,MAAIC,UAAU,GAAG,CAAjB,CAH2C;;EAI3C,MAAIC,aAAJ;;EACA,WAASC,YAAT,CAAuB1G,OAAvB,EAAgC;EAC9B,UAAMjG,IAAI,GAAGiG,OAAO,CAACjJ,qBAAR,EAAb;EACA,UAAM;EAAEqH,MAAAA,WAAW,EAAED,YAAf;EAA6BD,MAAAA,UAAU,EAAE9D;EAAzC,QAAyD1mB,MAA/D;EACA,WACEqmB,IAAI,CAACU,MAAL,GAAc,CAAd,IACAV,IAAI,CAACjD,KAAL,GAAa,CADb,IAEAiD,IAAI,CAAClD,GAAL,GAAWsH,YAFX,IAGApE,IAAI,CAAC/C,IAAL,GAAYoD,WAJd;EAMD;;EACD,GAAC,YAAY;EACX,UAAMuM,YAAY,wLAAlB,CADW;;EAUX,UAAMC,OAAO,GAAGjH,SAAS,CAACG,UAA1B;;EACA,QAAI,CAACttB,QAAQ,CAACiV,cAAT,CAAwBmf,OAAxB,CAAL,EAAuC;EACrC,YAAMC,YAAY,GAAGr0B,QAAQ,CAACiL,aAAT,CAAuB,OAAvB,CAArB;EACAopB,MAAAA,YAAY,CAAC99B,EAAb,GAAkB69B,OAAlB;EACAC,MAAAA,YAAY,CAACC,WAAb,GAA2BH,YAA3B;EACAn0B,MAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACD;EACF,GAjBD;;EAkBA,WAASE,gBAAT,CAA2BC,SAA3B,EAAsC;EACpC,aAASC,gBAAT,CAA2BC,gBAA3B,EAA6C;EAC3C,YAAMC,QAAQ,GAAG,EAAjB;EACAD,MAAAA,gBAAgB,CAACnkB,OAAjB,CAAyB4gB,QAAQ,IAAI;EACnC,cAAMyD,eAAe,GAAG50B,QAAQ,CAAC+mB,gBAAT,CAA0BoK,QAA1B,CAAxB;;EACA,YAAIyD,eAAe,CAAC33B,MAApB,EAA4B;EAC1B23B,UAAAA,eAAe,CAACrkB,OAAhB,CAAwBmT,EAAE,IAAI;EAC5B,gBAAIwQ,YAAY,CAACxQ,EAAD,CAAhB,EAAsB;EACpBiR,cAAAA,QAAQ,CAAC3vB,IAAT,CAAc0e,EAAd;EACD;EACF,WAJD;EAKA,iBAAOqQ,aAAa,CAAC5C,QAAD,CAApB,CAN0B;EAO3B,SAPD,MAOO;EACL4C,UAAAA,aAAa,CAAC5C,QAAD,CAAb,GAA0B,KAA1B,CADK;EAEN;EACF,OAZD;EAaA0D,MAAAA,WAAW,CAACF,QAAD,CAAX;EACD;;EACD,aAASG,eAAT,GAA4B;EAC1BL,MAAAA,gBAAgB,CAACn5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,CAAD,CAAhB;EACAC,MAAAA,UAAU;;EACV,UAAI14B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA3B,KAAsC,CAAtC,IAA2C+2B,UAAU,GAAG,EAA5D,EAAgE;EAC9DA,QAAAA,UAAU,GAAG,CAAb;EACAxJ,QAAAA,aAAa,CAACyJ,aAAD,CAAb;EACD;EACF;;EACDQ,IAAAA,gBAAgB,CAACD,SAAD,CAAhB;;EACA,QAAIl5B,MAAM,CAACgV,IAAP,CAAYyjB,aAAZ,EAA2B92B,MAA/B,EAAuC;EACrCg3B,MAAAA,aAAa,GAAG1J,WAAW,CAACuK,eAAD,EAAkB,GAAlB,CAA3B;EACD;EACF;;EACD,WAASD,WAAT,CAAsBF,QAAtB,EAAgC;EAC9BA,IAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAIA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACE,YAA3B,CAAvB;EACAre,IAAAA,UAAU,CAAC,MAAM;EACf2lB,MAAAA,QAAQ,CAACpkB,OAAT,CAAiBmT,EAAE,IAAI;EACrBA,QAAAA,EAAE,CAACqR,SAAH,CAAar1B,MAAb,CAAoBytB,SAAS,CAACE,YAA9B;EACA3J,QAAAA,EAAE,CAACqR,SAAH,CAAaC,GAAb,CAAiB7H,SAAS,CAACC,YAA3B;EACD,OAHD;EAID,KALS,EAKP0G,SALO,CAAV,CAF8B;EAQ/B;;EACD,WAASmB,gBAAT,GAA6B;EAC3B,QAAIC,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAArC;EACA,UAAMiW,QAAQ,GAAG,IAAIgU,gBAAJ,CAAqB,MAAM;EAC1C,UAAID,YAAY,KAAKl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAvC,EAA6C;EAC3CgqB,QAAAA,YAAY,GAAGl1B,QAAQ,CAACqB,QAAT,CAAkB6J,IAAjC;EACAqpB,QAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;EACF,KALgB,CAAjB;EAMA1S,IAAAA,QAAQ,CAACxG,OAAT,CAAiB3a,QAAQ,CAACkkB,IAA1B,EAAgC;EAAEkR,MAAAA,SAAS,EAAE,IAAb;EAAmBC,MAAAA,OAAO,EAAE;EAA5B,KAAhC;EACD;;EACDn0B,EAAAA,MAAM,CAACqZ,gBAAP,CAAwB,kBAAxB,EAA4C,MAAM;EAChD0a,IAAAA,gBAAgB;EACjB,GAFD;EAGAV,EAAAA,gBAAgB,CAACV,qBAAD,CAAhB;EACD;;EC9aM,MAAMyB,0BAAN,SAAyCrc,WAAzC,CAAqD;EAC1D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAKfi/B,QALe,GAKJ,IALI;EAAA,SAMfnc,MANe,GAMN,IANM;EAEb,SAAKA,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;EACD;;EAKD,MAAIiW,OAAJ,GAAe;EACb,WAAO,KAAK6F,QAAL,IAAiB,EAAxB;EACD;;EAED,MAAI7F,OAAJ,CAAatyB,GAAb,EAAkB;EAChB,QAAI,KAAKm4B,QAAL,KAAkB,IAAtB,EAA4B;EAC1B,WAAKA,QAAL,GAAgBn4B,GAAhB;EACA,WAAKo4B,YAAL;EACD;EACF;;EAEDA,EAAAA,YAAY,GAAI;EACd,SAAKpc,MAAL,CAAYe,SAAZ,GAAwB,KAAKsb,gBAAL,EAAxB;;EACA,QAAI,KAAKC,UAAL,KAAoB,KAAxB,EAA+B;EAC7B,WAAKnb,gBAAL,CAAsB,OAAtB,EAA+B,MAAM;EACnC,cAAMP,UAAU,GAAG,KAAK0V,OAAL,CAAaiG,OAAhC;;EACA,YAAI3b,UAAJ,EAAgB;EACd,eAAK0V,OAAL,CAAaxuB,MAAb,GAAsBA,MAAM,CAAC6Z,IAAP,CAAYf,UAAZ,EAAwB,QAAxB,CAAtB,GAA0D9Y,MAAM,CAAC8Z,MAAP,CAAc3Z,QAAd,CAAuB6J,IAAvB,GAA8B8O,UAAxF;EACD;;EACD9Y,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,UAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,UAAAA,OAAO,EAAE,KAAKA;EAAnC,SAA3C;EACD,OAND;EAOD;;EACD5Y,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKA,KAAd;EAAqBE,MAAAA,OAAO,EAAE,KAAKA;EAAnC,KAA1C;EACD;;EAED2b,EAAAA,gBAAgB,GAAI;EAClB,4HAIgB,KAAK/F,OAAL,CAAaiG,OAAb,GAAuB,SAAvB,GAAmC,EAJnD,2DAOgB,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAkC,MAPlD,oXAqBM,KAAKlG,OAAL,CAAapU,GAAb,GAAmB,KAAKoU,OAAL,CAAapU,GAAhC,GAAsC,EArB5C,uIAyBkD,KAAKoU,OAAL,CAAamG,eAzB/D,6CA0BwB,KAAKnG,OAAL,CAAaoG,cA1BrC,uCA2BkB,KAAKpG,OAAL,CAAamG,eA3B/B,yHA6BM,KAAKnG,OAAL,CAAanU,IAAb,GAAoB,KAAKmU,OAAL,CAAanU,IAAjC,GAAwC,EA7B9C;EAgCD;;EAnEyD;;ECCrD,MAAMwa,4BAAN,SAA2C9c,WAA3C,CAAuD;EAC5D3iB,EAAAA,WAAW,GAAI;EACb;EADa,SAQf4iB,OARe,GAQL,IARK;EAAA,SASf8c,SATe,GASH,IATG;EAAA,SAUf5c,MAVe,GAUN,IAVM;EAAA,SAWf6c,MAXe,GAWN,CAXM;EAAA,SAYfC,sBAZe,GAYU,CAAC,CAZX;EAAA,SAafC,YAbe,GAaA,CAbA;EAAA,SAcfC,SAde,GAcH,IAdG;EAAA,SAefC,oBAfe,GAeQ,IAfR;EAEb,SAAKjd,MAAL,GAAc,KAAKI,YAAL,CAAkB;EAAEC,MAAAA,IAAI,EAAE;EAAR,KAAlB,CAAd;;EACA,QAAI0R,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;EACF;;EAWD,MAAI5b,MAAJ,GAAc;EACZ,WAAO,KAAKR,OAAL,IAAgB,EAAvB;EACD;;EAED,MAAIQ,MAAJ,CAAYtc,GAAZ,EAAiB;EACf,QAAI,KAAK8b,OAAL,KAAiB,IAArB,EAA2B;EACzB,WAAKA,OAAL,GAAe9b,GAAf;EACA,WAAKk5B,cAAL;EACD;EACF;;EAED,MAAI5G,OAAJ,GAAe;EACb,WAAO,KAAKhW,MAAL,CAAYO,OAAZ,CAAoByV,OAA3B;EACD;;EAED,MAAIzV,OAAJ,GAAe;EACb,WAAO,KAAKP,MAAL,CAAYO,OAAnB;EACD;;EAEDqc,EAAAA,cAAc,GAAI;EAChB,SAAKL,MAAL,GAAc,KAAKvG,OAAL,CAAazyB,MAA3B;EACA,SAAKmc,MAAL,CAAYe,SAAZ,GAAwB,KAAKoc,SAAL,EAAxB;EACA,UAAMC,QAAQ,GAAG,KAAKC,kBAAL,EAAjB;;EACA,QAAI,KAAKxc,OAAL,CAAayc,WAAjB,EAA8B;EAC5BF,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa2c,WAAtD;EACD;;EACD,QAAI,KAAK3c,OAAL,CAAa4c,aAAjB,EAAgC;EAC9BL,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa6c,gBAAtD;EACAN,MAAAA,QAAQ,CAACG,kBAAT,CAA4B,WAA5B,EAAyC,KAAK1c,OAAL,CAAa8c,iBAAtD;EACD;;EACD,SAAKf,SAAL,GAAiBQ,QAAjB;EACA,SAAKpd,MAAL,CAAYzJ,WAAZ,CAAwB6mB,QAAxB;EACA,SAAKQ,UAAL;EACA,SAAKC,kBAAL,GAdgB;;EAgBhB,SAAKC,cAAL;EACA,SAAKC,YAAL;EACAj2B,IAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,MAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,MAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK;EAAnD,KAA1C;EACD;;EAEDid,EAAAA,UAAU,GAAI;EACZ,SAAKhB,SAAL,CAAezb,gBAAf,CAAgC,OAAhC,EAA0C0U,KAAD,IAAW;EAClD,YAAMmI,OAAO,GAAGnI,KAAK,CAACvV,MAAN,CAAanjB,EAA7B;;EACA,UAAI6gC,OAAO,CAAC5V,UAAR,CAAmB,kBAAnB,CAAJ,EAA4C;EAC1C,cAAM6V,QAAQ,GAAG,CAACD,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAlB;;EACA,YAAIy2B,QAAQ,KAAK,KAAKlB,YAAtB,EAAoC;EAClC,eAAKD,sBAAL,GAA8B,KAAKC,YAAnC;EACA,eAAKA,YAAL,GAAoBkB,QAApB;EACA,eAAKJ,kBAAL;EACA,eAAKC,cAAL;EACD;EACF,OARD,MAQO,IAAIE,OAAO,CAAC5V,UAAR,CAAmB,iBAAnB,CAAJ,EAA2C;EAChD4V,QAAAA,OAAO,CAACE,QAAR,CAAiB,OAAjB,IAA4B,KAAKC,QAAL,EAA5B,GAA8C,KAAKC,QAAL,EAA9C;EACA,aAAKN,cAAL;EACD,OAHM,MAGA,IAAIE,OAAO,CAACp2B,OAAR,CAAgB,GAAhB,IAAuB,CAAC,CAA5B,EAA+B;EACpC,cAAMkE,IAAI,GAAG,CAACkyB,OAAO,CAACx2B,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAd;EACA,cAAM2E,KAAK,GAAGL,IAAI,GAAG,CAArB;;EACA,YAAIhE,MAAM,CAAC8Z,MAAP,CAAc/L,SAAlB,EAA6B;EAC3B/N,UAAAA,MAAM,CAAC+N,SAAP,CAAiBgM,yBAAjB,CAA2C;EAAErB,YAAAA,KAAK,EAAE,KAAKF,MAAL,CAAYG,OAArB;EAA8BC,YAAAA,OAAO,EAAE,KAAKJ,MAAL,CAAYK,UAAnD;EAA+D0d,YAAAA,YAAY,EAAEvyB;EAA7E,WAA3C;EACD;;EACD,cAAMqF,GAAG,GAAG,KAAKmlB,OAAL,CAAanqB,KAAb,EAAoBowB,OAAhC;;EACA,YAAIprB,GAAG,KAAK,EAAZ,EAAgB;EACd,eAAKmlB,OAAL,CAAanqB,KAAb,EAAoBrE,MAApB,GAA6BA,MAAM,CAAC6Z,IAAP,CAAYxQ,GAAZ,EAAiB,QAAjB,CAA7B,GAA0DrJ,MAAM,CAACG,QAAP,CAAgB6J,IAAhB,GAAuBX,GAAjF;EACD;EACF;EACF,KAxBD;EAyBD;;EAED4sB,EAAAA,YAAY,GAAI;EACd,SAAKnB,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvD,WAAKoH,oBAAL,GAA4BrnB,UAAU,CAAC,MAAM;EAC3C,aAAKonB,SAAL,GAAiB5L,aAAa,CAAC,KAAK4L,SAAN,CAA9B;EACD,OAFqC,EAEnC,GAFmC,CAAtC;EAGD,KAJD;;EAMA,SAAKJ,SAAL,CAAezb,gBAAf,CAAgC,YAAhC,EAA+C0U,KAAD,IAAW;EACvDyI,MAAAA,YAAY,CAAC,KAAKrB,oBAAN,CAAZ;;EACA,UAAI,KAAKD,SAAL,KAAmB35B,SAAvB,EAAkC;EAChC,aAAKy6B,cAAL;EACD;EACF,KALD;EAMD;;EAEDT,EAAAA,kBAAkB,GAAI;EACpB,UAAMD,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAjB;EACAurB,IAAAA,QAAQ,CAAChnB,YAAT,CAAsB,OAAtB,EAA+B,UAA/B;EAEA,SAAKkgB,OAAL,CAAanf,OAAb,CAAqB,CAAC+iB,MAAD,EAASxnB,CAAT,KAAe;EAClC,YAAM6rB,MAAM,GAAG33B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAf;EACA0sB,MAAAA,MAAM,CAAC5C,SAAP,CAAiBC,GAAjB,CAAqB,gBAArB;EACA2C,MAAAA,MAAM,CAACjC,UAAP,GAAoB,KAApB;EACAiC,MAAAA,MAAM,CAACnoB,YAAP,CAAoB,IAApB,2BAA4C1D,CAAC,GAAG,CAAhD;EACA6rB,MAAAA,MAAM,CAACjI,OAAP,GAAiB4D,MAAjB;EACAkD,MAAAA,QAAQ,CAAC7mB,WAAT,CAAqBgoB,MAArB;EACD,KAPD;EASA,WAAOnB,QAAP;EACD;;EAEDD,EAAAA,SAAS,GAAI;EAAA;;EACX,+SAac,kEAAM7c,MAAN,sFAAcO,OAAd,8EAAuB2b,SAAvB,IAAmC,KAAKlc,MAAL,CAAYO,OAAZ,CAAoB2b,SAAvD,GAAmE,MAbjF,qJAqBI,KAAK3b,OAAL,CAAa2d,UArBjB,qBAsBI,KAAK3d,OAAL,CAAa4d,YAtBjB;EAyBD;;EAEDZ,EAAAA,kBAAkB,GAAI;EACpB,QAAI,KAAKf,sBAAL,KAAgC,CAAC,CAArC,EAAwC;EACtC,YAAM4B,QAAQ,GAAG,KAAK1e,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKihB,sBAAlD,EAAjB;EACA,YAAM6B,UAAU,GAAG,KAAK3e,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKihB,sBAApD,EAAnB;EACA4B,MAAAA,QAAQ,CAAC/C,SAAT,CAAmBr1B,MAAnB,CAA0B,0BAA1B;;EACA,UAAIq4B,UAAJ,EAAgB;EACdA,QAAAA,UAAU,CAAChD,SAAX,CAAqBr1B,MAArB,CAA4B,4BAA5B;EACD;EACF;;EACD,UAAMwF,IAAI,GAAG,KAAKkU,MAAL,CAAYnE,cAAZ,0BAA6C,KAAKkhB,YAAlD,EAAb;EACA,UAAMtY,MAAM,GAAG,KAAKzE,MAAL,CAAYnE,cAAZ,4BAA+C,KAAKkhB,YAApD,EAAf;EACAjxB,IAAAA,IAAI,CAAC6vB,SAAL,CAAeC,GAAf,CAAmB,0BAAnB;;EACA,QAAInX,MAAJ,EAAY;EACVA,MAAAA,MAAM,CAACkX,SAAP,CAAiBC,GAAjB,CAAqB,4BAArB;EACD;EACF;;EAEDkC,EAAAA,cAAc,GAAI;EAChB1M,IAAAA,aAAa,CAAC,KAAK4L,SAAN,CAAb;EACA,SAAKA,SAAL,GAAiB7L,WAAW,CAAC,MAAM;EACjC,WAAKgN,QAAL;EACD,KAF2B,EAEzB,KAAKtd,OAAL,CAAa+d,UAAb,GAA0B,KAAK/d,OAAL,CAAa+d,UAAb,GAA0B,IAApD,GAA2D,IAFlC,CAA5B;EAGD;;EAEDT,EAAAA,QAAQ,GAAI;EACV,SAAKU,IAAL,CAAU,KAAK9B,YAAf,EAA6B,CAAC,KAAKA,YAAL,GAAoB,CAArB,IAA0B,KAAKF,MAA5D;EACD;;EAEDuB,EAAAA,QAAQ,GAAI;EACV,SAAKS,IAAL,CAAU,KAAK9B,YAAf,EAA6B,KAAKA,YAAL,GAAoB,CAAjD;EACD;;EAED8B,EAAAA,IAAI,CAAEC,IAAF,EAAQC,GAAR,EAAa;EACf,SAAKjC,sBAAL,GAA8BgC,IAA9B;EACA,SAAK/B,YAAL,GAAoBgC,GAApB;;EACA,QAAIA,GAAG,KAAK,CAAZ,EAAe;EACb,WAAKhC,YAAL,GAAoB,KAAKF,MAAzB;EACD;;EACD,SAAKgB,kBAAL;EACD;;EAxL2D;;ECEvD,MAAMmB,2BAA2B,GAAIzH,gBAAD,IAAsB;EAAA;;EAC/D,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,+BAAnB,MAAwDxI,SAA5D,EAAuE;EACrE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,+BAAtB,EAAuDkK,0BAAvD;EACD;;EACD,QAAMtgB,KAAK,4BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,yEAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAMC,QAAQ,GAAGt4B,QAAQ,CAACiL,aAAT,CAAuB,+BAAvB,CAAjB;EACAqtB,EAAAA,QAAQ,CAAC1e,KAAT,GAAiB+W,gBAAgB,CAAC9W,OAAlC;EACAye,EAAAA,QAAQ,CAACxe,OAAT,GAAmB6W,gBAAgB,CAAC5W,UAApC;EACAue,EAAAA,QAAQ,CAAC1C,SAAT,GAAqBjF,gBAAgB,CAAC1W,OAAjB,CAAyB2b,SAA9C;EACA0C,EAAAA,QAAQ,CAAC5I,OAAT,GAAmBiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAnB;EACA,QAAM6I,WAAW,GAAG5H,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAAtF;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwB2oB,QAAxB;EACD,CAbM;EAeA,MAAME,6BAA6B,GAAI7H,gBAAD,IAAsB;EAAA;;EACjE,MAAIxF,cAAc,CAAClmB,GAAf,CAAmB,iCAAnB,MAA0DxI,SAA9D,EAAyE;EACvE0uB,IAAAA,cAAc,CAACC,MAAf,CAAsB,iCAAtB,EAAyD2K,4BAAzD;EACD;;EACD,QAAM/gB,KAAK,6BAAG2b,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAA5B,2EAAqC2b,gBAAgB,CAAC1W,OAAjB,CAAyBoe,WAAzE;EACA,QAAM7B,QAAQ,GAAGx2B,QAAQ,CAACiL,aAAT,CAAuB,iCAAvB,CAAjB;EACAurB,EAAAA,QAAQ,CAAC9c,MAAT,GAAkBiX,gBAAlB;EACA,QAAMrX,SAAS,GAAGqX,gBAAgB,CAAC1W,OAAjB,CAAyBjF,KAAzB,GAAiChV,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAjC,GAAkEhV,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAApF;EACAsE,EAAAA,SAAS,CAACa,SAAV,GAAsB,EAAtB;EACAb,EAAAA,SAAS,CAAC3J,WAAV,CAAsB6mB,QAAtB;EACD,CAVM;EAYA,MAAMiC,oBAAoB,GAAI9H,gBAAD,IAAsB;EACxD,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAA5B,IAAkC,IAAtC,EAA4C;EAC1CwU,IAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAACtV,UAAjB,CAA4BqD,EAAxC;EACD;;EACD,QAAM0U,YAAY,GAAG,IAAIC,WAAJ,CAAgB,uBAAhB,EAAyC;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAAzC,CAArB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBH,YAAvB;EACD,CAXM;EAaA,MAAMsF,gBAAgB,GAAI/H,gBAAD,IAAsB;EACpD,QAAM;EAAC1W,IAAAA,OAAD;EAAUJ,IAAAA,OAAO,EAAE8e,MAAnB;EAA2B5e,IAAAA,UAAU,EAAE6e;EAAvC,MAAoDjI,gBAAgB,IAAI,EAA9E;EAEA,QAAM;EAAC3b,IAAAA;EAAD,MAAUiF,OAAO,IAAI,EAA3B;EACA,QAAMyV,OAAO,GAAGzV,OAAO,CAACyV,OAAR,CAAgB,CAAhB,CAAhB;EACA,QAAMnU,IAAI,GAAGmU,OAAO,CAACnU,IAArB;;EAEA,MAAI,CAACvG,KAAD,IAAU,CAACuG,IAAf,EAAqB;EACnBvK,IAAAA,OAAO,CAACnJ,KAAR,CAAc,4BAAd;EACA;EACD;;EAED,MAAIkpB,kBAAkB,GAAG,KAAzB;EACA,QAAMvS,OAAO,GAAG;EACd5E,IAAAA,KAAK,EAAE+e,MADO;EAEd7e,IAAAA,OAAO,EAAE8e;EAFK,GAAhB;;EAKA,QAAM5H,WAAW,GAAG,MAAM;EACxB,QAAI,CAACD,kBAAL,EAAyB;EACvBA,MAAAA,kBAAkB,GAAG,IAArB;EACA7vB,MAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C0D,OAA1C;EACD;EACF,GALD;;EAOA,QAAMoT,iBAAiB,GAAI5c,KAAD,IAAW;EACnC,QAAIlL,KAAK,GAAG,CAAZ;EACA,UAAM+nB,UAAU,GAAGtH,WAAW,CAAC,MAAM;EACnC,YAAMuH,YAAY,GAAG9xB,QAAQ,CAAC+xB,aAAT,CAAuB/c,KAAvB,CAArB;;EACA,UAAI8c,YAAJ,EAAkB;EAChBd,QAAAA,WAAW;EACXE,QAAAA,cAAc,CAACY,YAAD,EAAevW,IAAf,CAAd;EACAiP,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD,OAJD,MAIO,IAAI,EAAE/nB,KAAF,IAAW,EAAf,EAAmB;EACxBkH,QAAAA,OAAO,CAACkO,GAAR,iDAAsDlK,KAAtD;EACAwV,QAAAA,aAAa,CAACqH,UAAD,CAAb;EACD;EACF,KAV6B,EAU3B,GAV2B,CAA9B;EAWD,GAbD;;EAeAD,EAAAA,iBAAiB,CAAC5c,KAAD,CAAjB;EACD,CAzCM;;EA2CP,MAAMkc,cAAc,GAAG,CAAC1D,OAAD,EAAUjS,IAAV,KAAmB;EACxC,MAAIiS,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACiE,SAAR,GAAoBlW,IAApB;EACD;EACF,CAJD;;EAMO,MAAMsd,UAAU,GAAIlI,gBAAD,IAAsB;EAC9C,QAAMuC,MAAM,GAAG,EAAf;EACAA,EAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;EACA,QAAM6V,OAAO,GAAGiB,gBAAgB,CAAC1W,OAAjB,CAAyByV,OAAzB,CAAiC,CAAjC,CAAhB;EACA,QAAMyD,IAAI,GAAGzD,OAAO,CAACyD,IAArB;;EACA,MAAIxC,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,IAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,MAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyBkZ,IAAzB,IAAiC,IAArC,EAA2C;EACzCD,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;EACD;;EACD,QAAM2F,SAAS,GAAG,IAAIzF,WAAJ,CAAgB,4BAAhB,EAA8C;EAACC,IAAAA,MAAM,EAAEJ;EAAT,GAA9C,CAAlB;EACAlzB,EAAAA,QAAQ,CAACuzB,aAAT,CAAuBuF,SAAvB;EACD,CAbM;EAeA,MAAMC,mCAAmC,GAAIn8B,MAAD,IAAY;EAC7D,QAAM4xB,YAAY,GAAG,IAAIC,eAAJ,CAAoBvtB,MAAM,CAACG,QAAP,CAAgBuJ,MAApC,CAArB;EACA,QAAM8jB,MAAM,GAAGF,YAAY,CAACvpB,GAAb,CAAiB,cAAjB,CAAf;;EACA,MAAIypB,MAAJ,EAAY;EACV,UAAMC,YAAY,GAAGztB,MAAM,CAAC0tB,MAA5B;;EACA,YAAQF,MAAR;EACE,WAAK,qBAAL;EACE,YAAIC,YAAJ,EAAkB;EAChBA,UAAAA,YAAY,CAACG,WAAb,CAAyB,SAAzB,EAAoC,GAApC;EACA5tB,UAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C,kBAAM+J,SAAS,GAAG75B,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAlB;EACA,kBAAM25B,WAAW,GAAGD,SAAS,CAACE,YAA9B;EACA,kBAAM7d,UAAU,GAAG4d,WAAW,CAAC,CAAD,CAAX,CAAe5d,UAAlC;;EACA,gBAAI2d,SAAS,IAAI3d,UAAU,CAACmB,YAAX,KAA4B,aAAzC,IAA0DnB,UAAU,CAACnR,IAAX,KAAoB,CAAlF,EAAqF;EACnFwuB,cAAAA,gBAAgB,CAACO,WAAW,CAAC,CAAD,CAAZ,CAAhB;EACD;EACF,WAPD,EAOG,KAPH;EAQD;;EACD;EAbJ;EAiBD;EACF,CAvBM;;ECrGA,MAAME,gBAAgB,GAAG,CAACC,MAAD,EAASzI,gBAAT,KAA8B;EAC5D,QAAM0I,IAAI,GAAGn4B,MAAM,CAAC8Z,MAAP,CAAcoe,MAAd,CAAb;;EACA,MAAI,OAAOC,IAAP,KAAgB,UAApB,EAAgC;EAC9B,QAAI1I,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvC2a,MAAAA,IAAI,CAAC1I,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAA1B,CAAJ;EACD,KAFD,MAEO;EACL2a,MAAAA,IAAI;EACL;EACF;EACF,CATM;EAWA,MAAMC,0BAA0B,GAAG,CAAC3I,gBAAD,EAAmBpV,IAAnB,KAA4B;EACpE,QAAMgV,MAAM,qDACkBI,gBAAgB,CAAC9W,OADnC,8oCAoB8D8W,gBAAgB,CAAC5W,UApB/E,iIAAZ;EA0BA,SAAOwB,IAAI,CAACje,OAAL,CAAa,iBAAb,YAAmCizB,MAAnC,UAAP;EACD,CA5BM;EA8BA,MAAMgJ,eAAe,GAAG,CAACC,SAAD,EAAYC,QAAZ,KAAyB;EACtD,QAAM3pB,OAAO,GAAGF,iBAAiB,EAAjC;EACA,QAAMa,SAAS,GAAGX,OAAO,CAAC2pB,QAAD,CAAP,CAAkBnzB,MAApC;;EACA,MAAImK,SAAS,IAAI,IAAb,IAAqBgpB,QAAzB,EAAmC;EACjC,SAAK,MAAM54B,GAAX,IAAkB24B,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAACz9B,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,eAAO4P,SAAS,CAAC+oB,SAAS,CAAC34B,GAAD,CAAV,CAAhB;;EACA,YAAI/B,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAJ,EAAwC;EACtC,gBAAMwY,WAAW,GAAGjR,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoBzH,aAApB,CAAD,CAA7B,CAApB;EACA,gBAAMgQ,IAAI,GAAGzI,IAAI,CAACK,KAAL,CAAWyB,kBAAkB,CAACnC,cAAc,CAACO,IAAf,CAAoB5H,YAApB,CAAD,CAA7B,CAAb;;EACA,cAAI2Y,WAAW,CAACxI,IAAD,CAAX,IAAqBwI,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,CAArB,IAAoDrpB,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,EAA4BD,SAAS,CAAC34B,GAAD,CAArC,CAAxD,EAAqG;EACnG,mBAAOuP,WAAW,CAACxI,IAAD,CAAX,CAAkB6xB,QAAlB,EAA4BD,SAAS,CAAC34B,GAAD,CAArC,CAAP;EACA/B,YAAAA,cAAc,CAACC,IAAf,CAAoBnH,aAApB,EAAmC4I,kBAAkB,CAACrB,IAAI,CAACC,SAAL,CAAegR,WAAf,CAAD,CAArD;EACD;EACF;EACF;EACF;EACF;;EACDJ,EAAAA,kBAAkB,CAACF,OAAD,CAAlB;EACD,CAnBM;EAqBA,MAAM4pB,aAAa,GAAIC,SAAD,IAAe;EAC1C,MAAIp4B,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,IAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,QAAIwJ,GAAG,CAAC+B,eAAJ,IAAuB,IAA3B,EAAiC;EAC/B/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBq2B,SAAtB;EACA;EACD;EACF;;EACD,OAAK,MAAM98B,GAAX,IAAkB88B,SAAlB,EAA6B;EAC3B,QAAIA,SAAS,CAAC59B,cAAV,CAAyBc,GAAzB,CAAJ,EAAmC;EACjC,YAAM+8B,SAAS,GAAGr4B,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,CAAlB;EACA,YAAMg9B,SAAS,GAAGF,SAAS,CAAC98B,GAAD,CAA3B;;EACA,UAAI0E,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,KAA4B,IAAhC,EAAsC;EACpC,YAAIg9B,SAAS,CAAC,CAAD,CAAT,IAAgB,IAAhB,IAAwBA,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAApD,EAAyD;EACvDr4B,UAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bg9B,SAA3B;EACD;EACF,OAJD,MAIO;EACLt4B,QAAAA,GAAG,CAAC+B,eAAJ,CAAoBzG,GAApB,IAA2Bg9B,SAA3B;EACD;EACF;EACF;EACF,CArBM;EAuBA,MAAMC,mBAAmB,GAAG,CAACnJ,gBAAD,EAAmBoJ,QAAnB,KAAgC;EACjE,QAAMz6B,IAAI,GAAG,EAAb;EACAA,EAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,EAAAA,IAAI,CAACmK,OAAL,GAAehQ,mBAAf;EACA6F,EAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,KAAC5Q,OAAD,GAAWm3B,gBAAgB,CAAC9W;EAA9B,GAAf;;EACA,MAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/Bza,IAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,MAAAA,UAAU,EAAE4W,gBAAgB,CAAC5W;EAAhD,KAAf;EACD;;EACDggB,EAAAA,QAAQ,CAAC1vB,YAAT,CAAsB/K,IAAtB;EACD,CATM;EAWA,MAAM06B,eAAe,GAAG,CAACrE,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,EAAyDC,OAAzD,EAAkEhhB,QAAlE,KAA+E;EAC5G,MAAIwc,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,QAAIyE,UAAJ;EACA,QAAIC,aAAJ;;EACA,QAAIH,QAAJ,EAAc;EACZE,MAAAA,UAAU,GAAGH,UAAb;EACD,KAFD,MAEO,IAAIA,UAAU,KAAK,IAAnB,EAAyB;EAC9BI,MAAAA,aAAa,GAAGJ,UAAU,CAAC5qB,sBAAX,CAAkC,UAAlC,CAAhB;;EACA,UAAIgrB,aAAa,IAAI,IAAjB,IAAyBA,aAAa,CAACp9B,MAAd,KAAyB,CAAtD,EAAyD;EACvDm9B,QAAAA,UAAU,GAAGC,aAAa,CAAC,CAAD,CAA1B;EACD;EACF;;EACD,UAAMjB,MAAM,GAAGzI,gBAAgB,CAAC1W,OAAjB,CAAyBmf,MAAxC;EACA,UAAM9a,SAAS,GAAGqS,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA3C;;EACA,QAAIhc,SAAS,IAAI,IAAjB,EAAuB;EACrBqX,MAAAA,OAAO,IAAI4E,eAAe,CAACJ,OAAD,EAAUhhB,QAAV,CAA1B;EACD;;EAED,QAAIihB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,CAACrM,OAAX,GAAqB,MAAM;EACzB;EACA,YAAIqL,MAAM,IAAI,IAAd,EAAoB;EAClB;EACA,cAAI9a,SAAS,IAAI,IAAjB,EAAuB;EACrBtQ,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACD;;EACDwD,UAAAA,gBAAgB,CAACC,MAAD,EAASzI,gBAAT,CAAhB,CALkB;;EAOlB9b,UAAAA,WAAW,CAAC,IAAD,EAAOG,KAAP,EAAcmE,QAAQ,CAACe,SAAvB,CAAX;EACD,SARD,MAQO;EACL,gBAAMsgB,MAAM,GAAG7J,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAAzB,GAAmC3J,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAA5D,GAAsE,IAAIvG,GAAJ,CAAQuB,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAjC,EAA0CnH,YAA1C,CAAuDvpB,GAAvD,CAA2D,GAA3D,CAArF;EACA,gBAAM8L,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;;EAEA,cAAI45B,MAAM,KAAK,YAAf,EAA6B;EAC3B,gBAAI,CAAC7J,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA9B,EAAuC;EACrCp5B,cAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,gBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,gBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,eAAlD;EACD,aAH0B;;;EAK3B7Y,YAAAA,MAAM,CAAC+N,SAAP,CAAiBwrB,aAAjB,CAA+Bz1B,IAA/B,CAAoC;EAClC01B,cAAAA,UAAU,EAAE;EADsB,aAApC;EAGA7lB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WATD,MASO,IAAIsgB,MAAM,KAAK,MAAf,EAAuB;EAC5B;EACA3lB,YAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD,WAHM,MAGA;EACL;EACA,gBAAIyW,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;;EACA,kBAAIhF,gBAAgB,CAAC1W,OAAjB,CAAyB,aAAzB,CAAJ,EAA6C;EAC3CpF,gBAAAA,WAAW,CAAC9D,UAAD,EAAaiE,KAAb,EAAoBmE,QAAQ,CAACe,SAA7B,CAAX;EACD;;EACD,kBAAI,CAACyW,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAA9B,EAAuC;EACrCp5B,gBAAAA,MAAM,CAAC8Z,MAAP,CAAc/L,SAAd,CAAwBgM,yBAAxB,CAAkD;EAAErB,kBAAAA,KAAK,EAAE+W,gBAAgB,CAAC9W,OAA1B;EAAmCC,kBAAAA,OAAO,EAAE6W,gBAAgB,CAAC5W;EAA7D,iBAAlD;EACD;EACF,aARD,MAQO;EACL7Y,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF;EACF,OAzCD;EA0CD;EACF;EACF,CA/DM;EAiEA,MAAM4E,eAAe,GAAG,CAACJ,OAAD,EAAUhhB,QAAV,KAAuB;EACpD,QAAMjW,OAAO,GAAGi3B,OAAO,CAACxyB,OAAR,EAAhB;;EACA,QAAMgzB,UAAU,GAAGxhB,QAAQ,CAACpS,sBAAT,EAAnB;;EACA,SAAO,aAAavG,kBAAkB,CAAC2L,gBAAgB,CAACjJ,OAAO,GAAG,GAAV,GAAgBy3B,UAAU,CAAC5kB,CAA3B,GAA+B,GAA/B,GAAqC4kB,UAAU,CAACt0B,CAAjD,CAAjB,CAAtC;EACD,CAJM;;ECvKA,MAAMu0B,oBAAoB,GAAG,CAACjK,gBAAD,EAAmBxX,QAAnB,KAAgC;EAClE,QAAMnE,KAAK,GAAG,kBAAd;EACA,QAAM6lB,cAAc,GAAG76B,QAAQ,CAACiL,aAAT,CAAuB,wBAAvB,CAAvB;EACA4vB,EAAAA,cAAc,CAACz0B,OAAf,GAAyB+S,QAAzB;EACA0hB,EAAAA,cAAc,CAACnhB,MAAf,GAAwBiX,gBAAxB;EACA,QAAM4H,WAAW,GAAGv4B,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAApB;EACAujB,EAAAA,WAAW,CAACpe,SAAZ,GAAwB,EAAxB;EACAoe,EAAAA,WAAW,CAAC1d,KAAZ,CAAkBW,UAAlB,GAA+B,QAA/B;EACA+c,EAAAA,WAAW,CAAC5oB,WAAZ,CAAwBkrB,cAAxB;EACD,CATM;;ECAA,MAAMC,kBAAkB,GAAIjgB,KAAD,IAAW;EAC3C,QAAMkgB,gBAAgB,GAAGlgB,KAAK,CAACmgB,IAAN,CAAWC,aAAX,GAA2BpgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkBC,WAAlB,GAAgC,CAA3D,GAA+D,CAAxF;EACA,QAAMC,WAAW,GAAG,KAAK,CAAzB,CAF2C;;EAG3C,QAAMC,gBAAgB,GAAG,MAAMD,WAAN,GAAoBL,gBAA7C;EAEA,+GAMwBlgB,KAAK,CAACygB,OAAN,CAAcC,KAAd,IAAuB,oBAN/C,gLAgBwB1gB,KAAK,CAACmgB,IAAN,CAAWO,KAhBnC,qCAiBqB1gB,KAAK,CAACmgB,IAAN,CAAWQ,YAjBhC,qDAmBaH,gBAnBb,2HAuBMxgB,KAAK,CAACmgB,IAAN,CAAWC,aAAX,qCACgBpgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkBC,WADlC,wCAEgBtgB,KAAK,CAACmgB,IAAN,CAAWE,MAAX,CAAkB7b,WAFlC,+CAIE,EA3BR,yfAsDaxE,KAAK,CAACiD,IAAN,CAAWwB,UAtDxB,gKA8DazE,KAAK,CAACiD,IAAN,CAAWyB,gBA9DxB,4kBAyFwB1E,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4Bjc,WAzFpD,6BA0Fa3E,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BxX,SA1FzC,qCA2FqBpJ,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BD,YA3FjD,wBA4FM3gB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BR,aAA5B,uCAEkBpgB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BP,MAA5B,CAAmCC,WAFrD,0CAGkBtgB,KAAK,CAAC2C,OAAN,CAAcie,aAAd,CAA4BP,MAA5B,CAAmC7b,WAHrD,mDAME,eAlGR,wEAsGwBxE,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8Blc,WAtGtD,6BAuGa3E,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BzX,SAvG3C,qCAwGqBpJ,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BF,YAxGnD,wBAyGM3gB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BT,aAA9B,uCAEkBpgB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BR,MAA9B,CAAqCC,WAFvD,0CAGkBtgB,KAAK,CAAC2C,OAAN,CAAcke,eAAd,CAA8BR,MAA9B,CAAqC7b,WAHvD,mDAME,eA/GR;EAsHD,CA3HM;EA6HA,MAAMsc,iBAAiB,GAAI9gB,KAAD,IAAW;EAC1C,kHAIwBA,KAAK,CAACmgB,IAAN,CAAW5b,eAJnC;EAuED,CAxEM;;EC7HA,MAAMwc,QAAQ,GAAG,MAAM;EAC5B,QAAMC,EAAE,GAAG/c,SAAS,CAACgd,SAArB;EACA,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,KAAyB4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAAhC;EACD,CAHM;EAKA,MAAM8xB,SAAS,GAAG,MAAM;EAC7B,QAAMF,EAAE,GAAG/c,SAAS,CAACgd,SAArB;EACA,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,SAAZ,KAA0B4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAAjC;EACD,CAHM;EAKA,MAAM+xB,QAAQ,GAAG,MAAM;EAC5B,QAAMH,EAAE,GAAG/c,SAAS,CAACgd,SAArB,CAD4B;;EAG5B,SAAOD,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,KACA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CADD,IAEA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,OAAZ,CAFD,IAGA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,QAAZ,CAHD,IAIA,CAAC4xB,EAAE,CAAC5xB,QAAH,CAAY,SAAZ,CAJR;EAKD,CARM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECMQ,MAAMgyB,mBAAN,SAAkCpzB,KAAlC,CAAwC;EAQrDvS,EAAAA,WAAW,OAKR8S,MALQ,EAKA;EAAA,QALE;EACXxM,MAAAA,MADW;EAEXwJ,MAAAA,OAFW;EAGXF,MAAAA,OAHW;EAIXqI,MAAAA;EAJW,KAKF;EACT;EADS;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAET,0EAAuB,6DAAvB;EACA,sEAAqB,IAArB;EACA,oEAAkBnF,MAAlB;EACA,8DAAexM,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACD;;EAEDvJ,EAAAA,IAAI,GAAkB;EACpB,QAAIlG,cAAc,CAAC2C,kBAAf,CAAkCvJ,UAAlC,CAAJ,EAAmD;EAAA,wCAD5CgkC,WAC4C;EAD5CA,QAAAA,WAC4C;EAAA;;EACjD,sEAAmBA,WAAnB;;EACA,aAAO,CAAP;EACD,KAHD,MAGO;EACL,8DAAar0B,KAAb,CAAmB,uBAAnB;EACD;EACF;;EAEDs0B,EAAAA,MAAM,GAAgB;EAAA,QAAdvX,OAAc,uEAAJ,EAAI;EACpB,UAAM;EAAEwX,MAAAA,MAAF;EAAU1B,MAAAA;EAAV,QAAyB9V,OAA/B;EACAyX,IAAAA,UAAU,6BAAC,IAAD,qDAAe,IAAf,uDAA8B,IAA9B,2BAA6CD,MAA7C,EAAqD1B,UAArD,8BAAiE,IAAjE,gCAAV;EACD;;EAEDnxB,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,kGAAmB,IAAnB;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAaD+yB,EAAAA,yBAAyB,CAAEC,oBAAF,EAAwBC,iBAAxB,EAA2CC,aAA3C,EAA0DC,cAA1D,EAA0E;EACjG,QAAId,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,4GAAsCQ,oBAAtC,EAA4DC,iBAA5D;EACD,KAFD,MAEO,IAAIR,QAAQ,EAAZ,EAAgB;EACrB,8FAA+BO,oBAA/B,EAAqDE,aAArD,EAAoEC,cAApE,EAAoFF,iBAApF;EACD;EACF;;EAEDG,EAAAA,uBAAuB,CAAEC,oBAAF,EAAwB;EAC7C,sEAAqBA,oBAArB;EACD;;EA4aDC,EAAAA,cAAc,CAAEC,OAAF,EAAWF,oBAAX,EAAiC;EAC7Cr7B,IAAAA,GAAG,CAACkC,cAAJ,GAAqBq5B,OAArB;;EACA,QAAIF,oBAAoB,IAAI,IAA5B,EAAkC;EAChC,WAAKD,uBAAL,CAA6BC,oBAA7B;EACD;;EACD,QAAIr7B,GAAG,CAACkC,cAAJ,IAAsBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAvC,EAA4D;EAC1D,0GAAqCvC,GAAG,CAACsC,QAAJ,CAAaq4B,WAAlD;EACD,KAFD,MAEO,IAAI,CAAC36B,GAAG,CAACkC,cAAL,IAAuBlC,GAAG,CAACsC,QAAJ,CAAaC,mBAAxC,EAA6D;EAClE,8DAAa+D,KAAb,CAAmB,4FAAnB;EACD;EACF;;EAvfoD;;+CA4CtCq0B,aAAa;EAC1B,MAAI36B,GAAG,CAACkC,cAAJ,IAAsBy4B,WAAW,CAACj/B,MAAZ,GAAqB,CAA/C,EAAkD;EAChD,wGAAqCi/B,WAArC;EACD,GAFD,MAEO,IAAI36B,GAAG,CAACkC,cAAJ,IAAsB,IAAtB,IAA8By4B,WAAW,CAACj/B,MAAZ,GAAqB,CAAvD,EAA0D;EAC/DsE,IAAAA,GAAG,CAACsC,QAAJ,CAAaC,mBAAb,GAAmC,IAAnC;EACAvC,IAAAA,GAAG,CAACsC,QAAJ,CAAaq4B,WAAb,GAA2BA,WAAW,CAACptB,KAAZ,EAA3B;EACD,GAHM,MAGA,IAAIvN,GAAG,CAACkC,cAAJ,KAAuB,KAAvB,IAAgCy4B,WAAW,CAACj/B,MAAZ,GAAqB,CAAzD,EAA4D;EACjE,4DAAa4K,KAAb,CAAmB,+DAAnB;EACD;EACF;;yEAc4B;EAC3B,SAAO,iBAAiB3G,MAAxB;EACD;;uEAE0Bq7B,sBAAsBE,eAAeC,gBAAgBF,mBAAmB;EACjG,MAAI,6FAAoC,mEAAsB,IAA9D,EAAoE;EAClE19B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACAmkB,IAAAA,SAAS,CAACie,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDzR,IAApD,CAA0DkS,YAAD,IAAkB;EACzE/7B,MAAAA,MAAM,CAACg8B,YAAP,CAAoBC,iBAApB,GAAwCpS,IAAxC,CAA8CqS,UAAD,IAAgB;EAC3D,YAAIA,UAAU,KAAK,SAAnB,EAA8B;EAC5B,gBAAMC,YAAY,GAAG;EACnBT,YAAAA,oBAAoB,8BAAE,IAAF,+BADD;EAEnBU,YAAAA,eAAe,EAAE;EAFE,WAArB;;EAIA,kEAAaC,IAAb,CAAkB,YAAYp+B,IAAI,CAACC,SAAL,CAAei+B,YAAf,CAA9B;;EACA,gBAAMG,gBAAgB,GAAG,MAAM;EAC7BP,YAAAA,YAAY,CAACQ,WAAb,CAAyBC,SAAzB,CAAmCL,YAAnC,EAAiDtS,IAAjD,CAAuDtV,YAAD,IAAkB;EACtE,sEAAa8nB,IAAb,CAAkB,0CAA0C9nB,YAAY,CAACkoB,QAAzE;;EACA,sEAAaJ,IAAb,CAAkB,wBAAwBp+B,IAAI,CAACC,SAAL,CAAe;EACvDw9B,gBAAAA,oBAAoB,8BAAE,IAAF,+BADmC;EAEvDU,gBAAAA,eAAe,EAAE;EAFsC,eAAf,CAA1C;;EAIA,sEAAaC,IAAb,CAAkB,iCAAiCp+B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA,oBAAMmoB,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EAEAmoB,cAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACAha,cAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EACA,wEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,kBAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,gBAAAA,oBAAoB;EACrB;;EACD,oBAAMuB,mBAAmB,GAAG99B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,kBAAI6oB,mBAAJ,EAAyB;EACvBA,gBAAAA,mBAAmB,CAACxuB,UAApB,CAA+BC,WAA/B,CAA2CuuB,mBAA3C;EACD;EACF,aArBD;EAsBD,WAvBD;;EAyBA,gBAAMf,aAAa,GAAGE,YAAY,CAACc,UAAb,IAA2Bd,YAAY,CAACe,OAAxC,IAAmDf,YAAY,CAACgB,MAAtF;;EACA,cAAIlB,aAAa,IAAIA,aAAa,CAACmB,KAAd,KAAwB,WAA7C,EAA0D;EACxD;EACAV,YAAAA,gBAAgB;EACjB,WAHD,MAGO,IAAIT,aAAJ,EAAmB;EACxB;EACAA,YAAAA,aAAa,CAACxiB,gBAAd,CAA+B,aAA/B,EAA+C0U,KAAD,IAAW;EACvD,kBAAIA,KAAK,CAACvV,MAAN,CAAawkB,KAAb,KAAuB,WAA3B,EAAwC;EACtC,wEAAaX,IAAb,CAAkB,yDAAlB;;EACAC,gBAAAA,gBAAgB;EACjB;EACF,aALD;EAMD;EACF;EACF,OA9CD;EA+CD,KAhDD;EAiDD,GAnDD,MAmDO;EACL;EACA,QAAI,OAAOf,aAAP,KAAyB,WAA7B,EAA0C;EACxC,8DAAa50B,KAAb,CAAmB,0CAAnB;EACD;;EACD,QAAI,OAAO60B,cAAP,KAA0B,WAA9B,EAA2C;EACzC,8DAAa70B,KAAb,CAAmB,oDAAnB;EACD;;EACD,QAAI,YAAY3G,MAAZ,IAAsB,sBAAsBA,MAAM,CAACi9B,MAAvD,EAA+D;EAC7Dj9B,MAAAA,MAAM,CAACi9B,MAAP,CAAcC,gBAAd,CAA+BjB,iBAA/B,CACET,cADF,EAEED,aAFF,EAEiB,EAFjB,EAEsBhnB,YAAD,IAAkB;EACnC,YAAIA,YAAY,CAAC2nB,UAAb,KAA4B,SAAhC,EAA2C;EACzC,gBAAMQ,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB;EACAmoB,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BloB,YAAY,CAAC4oB,WAAzC;EACAT,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;;EACA,kEAAaf,IAAb,CAAkB,wBAAwBp+B,IAAI,CAACC,SAAL,CAAe;EACvDs9B,YAAAA,cADuD;EAEvDD,YAAAA;EAFuD,WAAf,CAA1C;;EAIA,kEAAac,IAAb,CAAkB,iCAAiCp+B,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAnD;;EAEA3W,UAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EAEA,oEAAcC,aAAd,CAA4BD,gBAA5B;;EACA,kEAAaL,IAAb,CAAkB,+CAA+C9nB,YAAY,CAAC4oB,WAA9E;EACD,SAdD,MAcO,IAAI5oB,YAAY,CAAC2nB,UAAb,KAA4B,QAAhC,EAA0C;EAC/C,kEAAaG,IAAb,CAAkB,sCAAlB;EACD;EACF,OApBH;EAqBD;EACF;EACF;;qFAKiChB,sBAAsBC,mBAAmB;EACzE,MAAI+B,iBAAiB,GAAG,EAAxB;;EAEA,MAAI,mBAAmBzf,SAAvB,EAAkC;EAChCA,IAAAA,SAAS,CAACie,aAAV,CAAwBC,QAAxB,CAAiCR,iBAAjC,EAAoDzR,IAApD,CAA0DkS,YAAD,IAAkB;EACzE,UAAI,OAAOuB,iBAAP,KAA6B,WAAjC,EAA8C;EAAE;EAC9C;EACA;EACA,eAAO,IAAI1U,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACkT,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD;;EACDsB,MAAAA,iBAAiB,GAAGtB,YAAY,CAACwB,KAAjC,CANyE;EASzE;EACA;;EACA,YAAMC,YAAY,GAAG,wBAArB;EACA,YAAMC,qBAAqB,GAAGD,YAAY,CAACpiC,IAAb,CAAkBkgC,iBAAlB,CAA9B;;EACA,UAAImC,qBAAJ,EAA2B;EACzB,eAAO7f,SAAS,CAACie,aAAV,CAAwB6B,KAA/B;EACD,OAFD,MAEO;EACL,YAAIhD,QAAQ,EAAZ,EAAgB;EACd,iBAAO,IAAI9R,OAAJ,CAAYC,OAAO,IAAI/a,UAAU,CAAC,MAAM+a,OAAO,CAACkT,YAAD,CAAd,EAA8B,IAA9B,CAAjC,CAAP;EACD,SAFD,MAEO;EACL,iBAAOne,SAAS,CAACie,aAAV,CAAwB8B,gBAAxB,EAAP;EACD;EACF;EACF,KAtBD,EAsBG9T,IAtBH,CAsBS+T,yBAAD,IAA+B;EACrC;EACA,UAAI/C,SAAS,MAAMlzB,KAAK,CAACC,OAAN,CAAcg2B,yBAAd,CAAnB,EAA6D;EAC3DA,QAAAA,yBAAyB,GAAGA,yBAAyB,CAACld,MAA1B,CAAkC9V,CAAD,IAAOA,CAAC,CAAC2yB,KAAF,KAAYF,iBAApD,EAAuE,CAAvE,CAA5B;EACD;;EACD,YAAMlB,YAAY,GAAG;EAAEC,QAAAA,eAAe,EAAE;EAAnB,OAArB;;EAEA,UAAI,mEAAsB,IAA1B,EAAgC;EAC9BD,QAAAA,YAAY,CAACT,oBAAb,GAAoCtxB,qBAAqB,6BAAC,IAAD,gCAAzD;EACD;;EAEDwzB,MAAAA,yBAAyB,CAACrB,WAA1B,CAAsCC,SAAtC,CAAgDL,YAAhD,EACGtS,IADH,CACStV,YAAD,IAAkB;EACtB,gEAAa8nB,IAAb,CAAkB,0CAA0C9nB,YAAY,CAACkoB,QAAzE;;EACA,gEAAa76B,KAAb,CAAmB,wBAAwB3D,IAAI,CAACC,SAAL,CAAei+B,YAAf,CAA3C;;EACA,gEAAav6B,KAAb,CAAmB,iCAAiC3D,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAApD,EAHsB;;;EAMtB,cAAMmoB,gBAAgB,GAAGz+B,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACC,SAAL,CAAeqW,YAAf,CAAX,CAAzB,CANsB;;EAStB,YAAImmB,QAAQ,EAAZ,EAAgB;EACdgC,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACA8kB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,QAA3B;EACD,SAHD,MAGO,IAAIvC,SAAS,EAAb,EAAiB;EACtB6B,UAAAA,gBAAgB,CAACD,QAAjB,GAA4BC,gBAAgB,CAACD,QAAjB,CAA0B/8B,KAA1B,CAAgC,GAAhC,EAAqCkY,GAArC,EAA5B;EACA8kB,UAAAA,gBAAgB,CAACU,OAAjB,GAA2B,SAA3B;EACD;;EACDx/B,QAAAA,cAAc,CAACqC,gBAAf,CAAgCvH,sBAAhC,EAAwDgkC,gBAAxD;;EACA,kEAAcC,aAAd,CAA4BD,gBAA5B;;EAEA,YAAI,OAAOrB,oBAAP,KAAgC,WAAhC,IAA+C,OAAOA,oBAAP,KAAgC,UAAnF,EAA+F;EAC7FA,UAAAA,oBAAoB;EACrB;;EACD,cAAMuB,mBAAmB,GAAG99B,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,CAA5B;;EACA,YAAI6oB,mBAAJ,EAAyB;EACvBA,UAAAA,mBAAmB,CAACxuB,UAApB,CAA+BC,WAA/B,CAA2CuuB,mBAA3C;EACD;EACF,OA3BH,EA2BK9S,KA3BL,CA2BYnjB,KAAD,IAAW;EAClB;EACAi3B,QAAAA,yBAAyB,CAACrB,WAA1B,CAAsCsB,eAAtC,GAAwDhU,IAAxD,CAA8DtV,YAAD,IAAkB;EAC7E,cAAIA,YAAY,KAAK,IAArB,EAA2B;EACzBA,YAAAA,YAAY,CAACupB,WAAb,GAA2BjU,IAA3B,CAAiCkU,UAAD,IAAgB;EAC9C;EACA,sEAAa1B,IAAb,CAAkB,2BAAlB;;EACAr8B,cAAAA,MAAM,CAAC+N,SAAP,CAAiBwrB,aAAjB,CAA+Bz1B,IAA/B,CAAoC;EAClC01B,gBAAAA,UAAU,EAAE;EADsB,eAApC;EAGD,aAND,EAMG1P,KANH,CAMUvrB,CAAD,IAAO;EACd;EACA,sEAAaoI,KAAb,CAAmB,0BAA0BpI,CAA7C;EACD,aATD;EAUD;EACF,SAbD;;EAcA,gEAAaoI,KAAb,CAAmB,wBAAwBA,KAA3C;EACD,OA5CH;EA6CD,KA9ED,EA8EGmjB,KA9EH,CA8EUrpB,GAAD,IAAS;EAChB,8DAAakG,KAAb,CAAmB,uCAAuClG,GAA1D;EACD,KAhFD;EAiFD;EACF;;mDAEiB;EAChB,QAAMu9B,SAAS,GAAGl/B,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAlB;EACAi0B,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,MAAvB,EAA+B,iBAA/B;EACA0vB,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,IAAvB,EAA6B,eAA7B;EACA0vB,EAAAA,SAAS,CAAC1vB,YAAV,CAAuB,KAAvB,8BAA8B,IAA9B,qCAJgB;;EAOhBxP,EAAAA,QAAQ,CAAC0P,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDuvB,SAArD;EAEA,SAAOA,SAAP;EACD;;yDAEoB;EACnB,QAAMA,SAAS,GAAGl/B,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAlB;EACAiqB,EAAAA,SAAS,CAAC5vB,UAAV,CAAqBC,WAArB,CAAiC2vB,SAAjC;EACD;;mFAEgChD,aAAa;EAC5C;EACA,MAAIiD,SAAJ;EACA,MAAIC,QAAJ;EACA,MAAIC,YAAJ;EACA,MAAIC,gBAAJ;EACA,MAAIC,aAAJ;EACA,MAAI7E,UAAJ;EACA,MAAI8E,qBAAJ;EACA,MAAIC,UAAJ;EACA,MAAIC,cAAJ;EACA,MAAInD,oBAAJ;EACA,MAAIC,iBAAJ;EACA,MAAImD,cAAJ;EACA,MAAIC,eAAJ;EACA,MAAInD,aAAJ;EACA,MAAIoD,qBAAJ;EACA,QAAMC,yBAAyB,GAAG9D,QAAQ,MAAO,iBAAiB96B,MAAhC,IAA2CpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA3C,IAAuG,oEAAuB,IAAhK;;EAEA,MAAIuhC,WAAW,CAACj/B,MAAZ,KAAuB,CAA3B,EAA8B;EAC5B,QAAI5B,QAAQ,CAAC6gC,WAAW,CAAC,CAAD,CAAZ,CAAZ,EAA8B;EAC5B,YAAM6D,QAAQ,GAAG7D,WAAW,CAAC,CAAD,CAA5B;EACAiD,MAAAA,SAAS,GAAGY,QAAQ,CAACZ,SAArB;EACAC,MAAAA,QAAQ,GAAGW,QAAQ,CAACX,QAApB;EACAC,MAAAA,YAAY,GAAGU,QAAQ,CAACV,YAAxB;EACAC,MAAAA,gBAAgB,GAAGS,QAAQ,CAACT,gBAA5B;EACAC,MAAAA,aAAa,GAAGQ,QAAQ,CAACR,aAAzB;EACA7E,MAAAA,UAAU,GAAGqF,QAAQ,CAACrF,UAAtB;EACA8E,MAAAA,qBAAqB,GAAGO,QAAQ,CAACP,qBAAjC;EACAC,MAAAA,UAAU,GAAGM,QAAQ,CAACN,UAAtB;EACAC,MAAAA,cAAc,GAAGK,QAAQ,CAACL,cAA1B;EACAnD,MAAAA,oBAAoB,GAAGwD,QAAQ,CAACxD,oBAAhC;EACAC,MAAAA,iBAAiB,GAAGuD,QAAQ,CAACvD,iBAA7B;EACAmD,MAAAA,cAAc,GAAGI,QAAQ,CAACJ,cAA1B;EACAC,MAAAA,eAAe,GAAGG,QAAQ,CAACH,eAA3B;EACAnD,MAAAA,aAAa,GAAGsD,QAAQ,CAACtD,aAAzB;EACAoD,MAAAA,qBAAqB,GAAGE,QAAQ,CAACF,qBAAjC;EACD;EACF,GAnBD,MAmBO;EACLV,IAAAA,SAAS,GAAGjD,WAAW,CAAC,CAAD,CAAvB;EACAkD,IAAAA,QAAQ,GAAGlD,WAAW,CAAC,CAAD,CAAtB;EACAmD,IAAAA,YAAY,GAAGnD,WAAW,CAAC,CAAD,CAA1B;EACAoD,IAAAA,gBAAgB,GAAGpD,WAAW,CAAC,CAAD,CAA9B;EACAqD,IAAAA,aAAa,GAAGrD,WAAW,CAAC,CAAD,CAA3B;EACAxB,IAAAA,UAAU,GAAGwB,WAAW,CAAC,CAAD,CAAxB;EACAsD,IAAAA,qBAAqB,GAAGtD,WAAW,CAAC,CAAD,CAAnC;EACD;;EAED,MAAIxB,UAAU,IAAI,IAAlB,EAAwB;EACtBA,IAAAA,UAAU,GAAG,KAAb;EACD;;EAED,MAAI8B,iBAAiB,IAAI,IAAzB,EAA+B;EAC7BA,IAAAA,iBAAiB,GAAG,kBAApB;EACD,GAtD2C;;;EAyD5C,MAAI,OAAO1d,SAAS,CAACie,aAAjB,KAAmC,WAAvC,EAAoD;EAClD;EACD;;EAED,QAAMiD,MAAM,GAAGL,cAAc,IAAI,IAAlB,IAA0BC,eAAe,IAAI,IAA5D,CA7D4C;;EAgE5C,MAAI1+B,MAAM,CAACG,QAAP,CAAgB4+B,QAAhB,KAA6B,QAA7B,IAAyCjgC,QAAQ,CAACqB,QAAT,CAAkBC,QAAlB,KAA+B,WAAxE,IAAuF,CAAC0+B,MAA5F,EAAoG;EAClG,4DAAan4B,KAAb,CAAmB,oEAAnB;;EACA;EACD;EAED;EACJ;EACA;EACA;;;EACI,MAAI+zB,QAAQ,MAAMG,SAAS,EAA3B,EAA+B;EAC7B,QAAI,6BAAC,IAAD,yDAAJ,EAAuC;EACrC,8DAAal0B,KAAb,CAAmB,wDAAnB;;EACA;EACD;EACF,GA9E2C;;;EAkF5C,MAAI,CAACm4B,MAAL,EAAa;EACX,UAAME,eAAe,IAAG,kBAAkBh/B,MAArB,CAArB;;EACA,QAAI,CAACg/B,eAAD,IAAoBhD,YAAY,IAAI,IAAxC,EAA8C;EAC5C,8DAAar1B,KAAb,CAAmB,sDAAnB;;EACA;EACD,KALU;;;EAOX,QAAIq1B,YAAY,CAACE,UAAb,KAA4B,SAA5B,KAA0C0C,yBAAyB,IAAIlE,QAAQ,EAArC,IAA2CG,SAAS,EAA9F,CAAJ,EAAuG;EACrG;EACA,WAAKO,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD,KAJD,MAIO,IAAI3C,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACA;EACD;;EAED,QAAI1C,UAAJ,EAAgB;EACd,WAAK4B,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACA;EACD;EACF,GAtG2C;;;EAyG5C,MAAI,CAACV,SAAD,IAAc,CAACC,QAAf,IAA2B,CAACC,YAA5B,IAA4C,CAACC,gBAAjD,EAAmE;EACjE,4DAAaz3B,KAAb,CAAmB,wFAAnB;;EACA;EACD,GA5G2C;;;EA+G5C,MAAI03B,aAAa,IAAI,IAAjB,IAAyB,CAACA,aAAa,CAAC70B,KAAd,CAAoB,gBAApB,CAA9B,EAAqE;EACnE60B,IAAAA,aAAa,GAAG,SAAhB,CADmE;EAEpE,GAjH2C;;;EAoH5C,QAAMhd,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;;EACA,MAAKe,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAD,IAAiD,IAArD,EAA2D;EACzDkE,IAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD,GAFD,MAEO;EACL,QAAIid,qBAAqB,IAAI,IAA7B,EAAmC;EACjC;EACAA,MAAAA,qBAAqB,GAAG,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAtC;EACD;;EAED,UAAMW,aAAa,GAAGrhC,cAAc,CAACoD,WAAf,CAA2BtH,eAA3B,CAAtB;;EACA,QAAI2nB,GAAG,GAAG4d,aAAN,GAAsBX,qBAA1B,EAAiD;EAC/C,UAAI,CAACxD,QAAQ,EAAb,EAAiB;EACf;EACD,OAH8C;;;EAK/C,UAAI8D,yBAAyB,IAAI,oEAAuB,IAAxD,EAA8D;EAC5D;EACD;EACF,KARD,MAQO;EACLhhC,MAAAA,cAAc,CAACsD,WAAf,CAA2BxH,eAA3B,EAA4C2nB,GAA5C;EACD;EACF;;EAED,MAAIyZ,QAAQ,kCAAM,IAAN,yDAAR,IAAkD,oEAAuB,IAA7E,EAAmF;EACjFl9B,IAAAA,cAAc,CAACsD,WAAf,CAA2BzH,4BAA3B,EAAyD,IAAzD;EACD;;EAED,MAAIqlC,MAAJ,EAAY;EACV;EACA,UAAMI,WAAW,GAAGpgC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAApB;EACAm1B,IAAAA,WAAW,CAAC5wB,YAAZ,CAAyB,OAAzB,EAAkC,eAAlC;EACA4wB,IAAAA,WAAW,CAAC5wB,YAAZ,CAAyB,KAAzB,EAAgCowB,eAAhC;EACA5/B,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BywB,WAA1B;EACAl/B,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,SAAxB,EAAoC0U,KAAD,IAAW;EAC5C,UAAIA,KAAK,CAAC3vB,IAAN,IAAc,IAAlB,EAAwB;EACtB,YAAIzD,GAAG,GAAG,EAAV;;EACA,YAAI;EACFA,UAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAWyvB,KAAK,CAAC3vB,IAAjB,CAAN;EACD,SAFD,CAEE,OAAOG,CAAP,EAAU;EACV;EACA;EACD;;EACD,YAAI5D,GAAG,CAACqiC,KAAJ,IAAa,IAAjB,EAAuB;EACrB,cAAIriC,GAAG,CAACwkC,IAAJ,KAAa,IAAb,IAAqBxkC,GAAG,CAACqiC,KAAJ,KAAc,KAAvC,EAA8C;EAC5C,gBAAIp/B,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,sEAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,YAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,gFAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,cAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C;EACAkG,cAAAA,MAAM,CAACo/B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCljB,gBAAAA,KAAK,EAAE8hB,SAD2B;EAElCjb,gBAAAA,IAAI,EAAEkb,QAF4B;EAGlCoB,gBAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,gBAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,gBAAAA,gBAAgB,EAAEA;EALgB,eAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,oBAAIA,OAAJ,EAAa;EACX;EACA,sBAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,oBAAAA,UAAU;EACX,mBAJU;;;EAMXv+B,kBAAAA,MAAM,CAAC6Z,IAAP,CAAY4kB,cAAZ;EACD,iBAPD,MAOO;EACL,sBAAI,OAAOD,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,oBAAAA,cAAc;EACf;EACF;;EACD;EACD,eApBD;EAqBD,aAvBD;EAwBD;EACF;EACF;EACF,KA5CD,EA4CG,KA5CH;EA6CD,GAnDD,MAmDO;EACL,QAAI5gC,cAAc,CAAC2C,kBAAf,CAAkCzG,aAAlC,KAAoDgF,QAAQ,CAACiV,cAAT,CAAwBna,0BAAxB,CAAxD,EAA6G;EAC3G,8DAAagI,KAAb,CAAmB,kDAAnB;;EACA;EACD;;EAEDhE,IAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,IAA/C;;EACA,wEAAsBw1B,MAAtB,GAA+B,MAAM;EACnC1xB,MAAAA,cAAc,CAACqC,gBAAf,CAAgCnG,aAAhC,EAA+C,KAA/C,EADmC;;EAGnCkG,MAAAA,MAAM,CAACo/B,mBAAP,CAA2BC,QAA3B,CAAoC;EAClCljB,QAAAA,KAAK,EAAE8hB,SAD2B;EAElCjb,QAAAA,IAAI,EAAEkb,QAF4B;EAGlCoB,QAAAA,iBAAiB,EAAEnB,YAHe;EAIlCoB,QAAAA,kBAAkB,EAAElB,aAJc;EAKlCD,QAAAA,gBAAgB,EAAEA;EALgB,OAApC,EAMIxC,OAAD,IAAa;EAAE;EAChB,YAAIA,OAAJ,EAAa;EACX;EACA,cAAI,OAAO2C,UAAP,KAAsB,UAA1B,EAAsC;EACpCA,YAAAA,UAAU;EACX;;EACD,eAAKnD,yBAAL,CAA+BC,oBAA/B,EAAqDC,iBAArD,EAAwEC,aAAxE,EAAuFoD,qBAAvF;EACD,SAND,MAMO;EACL,cAAI,OAAOH,cAAP,KAA0B,UAA9B,EAA0C;EACxCA,YAAAA,cAAc;EACf;EACF;;EACD;EACD,OAnBD;EAoBD,KAvBD;EAwBD;EACF;;EC3fI,MAAMgB,WAAW,GAAG,0pDAApB;EACA,MAAMC,kBAAkB,GAAG,s3CAA3B;;ECMP,IAAIC,YAAY,GAAG,IAAnB;EACA,IAAIxE,MAAM,GAAG,kBAAb;EACA,IAAIyE,mBAAmB,GAAG,IAA1B;EAEO,MAAMC,oBAAoB,GAAG,CAACC,aAAD,EAAgBnkC,MAAhB,EAAwBsJ,OAAxB,KAAoC;EACtE,QAAM86B,WAAW,GAAGliC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EAEA,QAAMumC,gBAAgB,GAAG,MAAM;EAC7B1/B,IAAAA,GAAG,CAACkD,UAAJ,GAAiBs8B,aAAjB;EACAjiC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCzG,cAAhC,EAAgDqmC,aAAhD;EACD,GAHD;;EAKA,MAAIA,aAAa,CAACziB,SAAlB,EAA6B;EAC3B2iB,IAAAA,gBAAgB;EAChB5E,IAAAA,UAAU,CAACz/B,MAAD,EAAS,IAAT,EAAesJ,OAAf,CAAV;EACD,GAHD,MAGO,IAAI/G,IAAI,CAACC,SAAL,CAAe4hC,WAAf,MAAgC7hC,IAAI,CAACC,SAAL,CAAe2hC,aAAf,CAApC,EAAmE;EACxEE,IAAAA,gBAAgB;EACjB;EACF,CAdM;EAeA,MAAM5E,UAAU,GAAG,CAACz/B,MAAD,EAAS2R,OAAT,EAAkBrI,OAAlB,EAA2Bg7B,YAA3B,EAAyCxG,UAAzC,EAAqDyG,YAArD,KAAsE;EAC9F,QAAMH,WAAW,GAAGliC,cAAc,CAAC2C,kBAAf,CAAkC/G,cAAlC,KAAqD,EAAzE;;EACA6G,EAAAA,GAAG,CAACkD,UAAJ,GAAiBu8B,WAAjB;;EACA,MAAI,CAACz/B,GAAG,CAACkD,UAAT,EAAqB;EACnB7H,IAAAA,MAAM,CAACiL,KAAP,CAAa,kCAAb;EACA;EACD;;EAED,MAAIq5B,YAAJ,EAAkB;EAAE9E,IAAAA,MAAM,GAAG8E,YAAT;EAAuB;;EAE3CL,EAAAA,mBAAmB,GAAG,IAAI5E,mBAAJ,CAAwB;EAAEr/B,IAAAA,MAAF;EAAUwJ,IAAAA,OAAO,EAAE,EAAnB;EAAuBF,IAAAA,OAAvB;EAAgCqI,IAAAA;EAAhC,GAAxB,CAAtB;;EAEA,MAAImsB,UAAJ,EAAgB;EACdmG,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD;;EAED,QAAM;EAAEgF,IAAAA,OAAF;EAAWC,IAAAA,OAAX;EAAoBC,IAAAA,YAApB;EAAkChjB,IAAAA;EAAlC,MAAgD/c,GAAG,CAACkD,UAA1D;;EAEA,MAAI6Z,SAAJ,EAAe;EACb,QAAI/c,GAAG,CAACkD,UAAJ,CAAe88B,SAAnB,EAA8BC,qBAAqB,CAACjgC,GAAG,CAACkD,UAAL,EAAiB08B,YAAjB,CAArB;EAC9B,QAAI5/B,GAAG,CAACkD,UAAJ,CAAeg9B,cAAnB,EAAmCC,cAAc,CAACngC,GAAG,CAACkD,UAAL,CAAd;EACpC,GAHD,MAGO;EACL,QAAI28B,OAAO,IAAIC,OAAO,KAAK,KAA3B,EAAkCG,qBAAqB,CAACjgC,GAAG,CAACkD,UAAL,EAAiB08B,YAAjB,CAArB;EAClC,QAAIG,YAAJ,EAAkBI,cAAc,CAACngC,GAAG,CAACkD,UAAL,CAAd;EACnB;EACF,CA3BM;;EA6BP,MAAMk9B,2BAA2B,GAAG,UAACC,GAAD,EAA0B;EAAA,MAApBC,UAAoB,uEAAP,EAAO;EAC5D,QAAMrU,OAAO,GAAGxtB,QAAQ,CAACiL,aAAT,CAAuB22B,GAAvB,CAAhB;EACAtmC,EAAAA,MAAM,CAAC2pB,OAAP,CAAe4c,UAAf,EAA2BtxB,OAA3B,CAAmC,UAAkB;EAAA,QAAjB,CAAC1T,GAAD,EAAML,KAAN,CAAiB;EACnDgxB,IAAAA,OAAO,CAAC3wB,GAAD,CAAP,GAAeL,KAAf;EACD,GAFD;EAGA,SAAOgxB,OAAP;EACD,CAND;;EAQO,MAAMgU,qBAAqB,GAAG,CAACM,UAAD,EAAaX,YAAb,KAA8B;EACjE,MAAInhC,QAAQ,CAACiV,cAAT,CAAwBla,0BAAxB,CAAJ,EAAyD;EAEzD,QAAM;EAAEwmC,IAAAA,SAAS,EAAE;EAAEQ,MAAAA,OAAF;EAAWlnB,MAAAA;EAAX;EAAb,MAAoCinB,UAA1C,CAHiE;;EAMjE,QAAM7lB,OAAO,GAAG0lB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAEwE;EAAN,GAAR,CAA3C;EACA,QAAMinC,UAAU,GAAGL,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA9C;EACA,QAAM0rC,MAAM,GAAGN,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA1C;EAEA,QAAM0mB,oBAAoB,GAAG0kB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAAxD;EACA,QAAM4mB,aAAa,GAAGwkB,2BAA2B,CAAC,KAAD,EAAQ;EACvDprC,IAAAA,EAAE,EAAE,eADmD;EAEvD43B,IAAAA,GAAG,EAAE4T,OAAO,CAACG,IAAR,CAAah4B,IAAb,KAAsB,SAAtB,uCAA+Dy2B,kBAA/D,IAAsFoB,OAAO,CAACG,IAAR,CAAa33B;EAFjD,GAAR,CAAjD;EAKA0S,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCwN,aAAjC;EAEA,QAAMC,gBAAgB,GAAGukB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EACA6mB,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BgyB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,OAAN;EAAe+9B,IAAAA,WAAW,EAAEyN,OAAO,CAAC1kB;EAApC,GAAR,CAAxD;EACAD,EAAAA,gBAAgB,CAACzN,WAAjB,CAA6BgyB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,aAAN;EAAqB+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACxkB;EAA1C,GAAR,CAAxD;EAEAN,EAAAA,oBAAoB,CAACtN,WAArB,CAAiCyN,gBAAjC;EAEA,QAAMK,gBAAgB,GAAGkkB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAApD;EAEA,QAAMklC,aAAa,GAAGkG,2BAA2B,CAAC,QAAD,EAAW;EAC1DprC,IAAAA,EAAE,EAAE,eADsD;EAE1D+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACvkB,OAAR,CAAgB2kB;EAF6B,GAAX,CAAjD;EAIA,QAAMzG,eAAe,GAAGiG,2BAA2B,CAAC,QAAD,EAAW;EAC5DprC,IAAAA,EAAE,EAAE,iBADwD;EAE5D+9B,IAAAA,WAAW,EAAEyN,OAAO,CAACvkB,OAAR,CAAgB4kB;EAF+B,GAAX,CAAnD;EAIA3kB,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B+rB,eAA7B;EACAje,EAAAA,gBAAgB,CAAC9N,WAAjB,CAA6B8rB,aAA7B;EAEAwG,EAAAA,MAAM,CAACtyB,WAAP,CAAmBsN,oBAAnB;EACAglB,EAAAA,MAAM,CAACtyB,WAAP,CAAmB8N,gBAAnB,EAtCiE;;EAyCjE,QAAM4W,YAAY,GAAGsN,2BAA2B,CAAC,OAAD,EAAU;EAAErN,IAAAA,WAAW,EAAEwG,kBAAkB,CAACjgB,KAAD;EAAjC,GAAV,CAAhD;EAEAoB,EAAAA,OAAO,CAACtM,WAAR,CAAoB0kB,YAApB;EACApY,EAAAA,OAAO,CAACtM,WAAR,CAAoBsyB,MAApB;EACAhmB,EAAAA,OAAO,CAACtM,WAAR,CAAoBqyB,UAApB;EAEAK,EAAAA,kBAAkB,CAACJ,MAAD,EAASpnB,KAAK,CAACmgB,IAAN,CAAW/K,QAApB,CAAlB;;EAEA,MAAI,CAAC6R,UAAU,CAACxjB,SAAhB,EAA2B;EACzB,QAAI,kBAAkBpd,MAAlB,IAA4Bg8B,YAAY,KAAK,IAAjD,EAAuD;EACrD,UAAIA,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCyD,QAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,QAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACA;EACD,OAJD,MAIO,IAAIc,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EAC/C;EACD;EACF;EACF;;EAED,QAAM7a,GAAG,GAAG,IAAI5mB,IAAJ,GAAWoC,OAAX,KAAuB,IAAnC;EACA,QAAMukC,aAAa,GAAGxjC,cAAc,CAACoD,WAAf,CAA2B,yBAA3B,CAAtB;EACA,QAAMqgC,cAAc,GAAGR,OAAO,CAACQ,cAAR,IAA0B,CAAjD,CA/DiE;;EAgEjE,QAAMC,sBAAsB,GAAG,CAACF,aAAD,IAAkB/f,GAAG,GAAG+f,aAAN,IAAuBC,cAAc,GAAG,EAAjB,GAAsB,EAAtB,GAA2B,EAAnG;;EAEA,MAAIC,sBAAJ,EAA4B;EAC1B,QAAI,CAACxG,QAAQ,EAAb,EAAiB;EACfh8B,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,UAAI,CAAC6lB,UAAU,CAACxjB,SAAhB,EAA2B;EACzBxf,QAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACAkgB,QAAAA,iBAAiB,CAACxmB,OAAD,CAAjB;EACD;EACF,KAND,MAMO;EACL,YAAMymB,4BAA4B,GAAI,iBAAiBxhC,MAAlB,IAA6B,CAACpC,cAAc,CAACoD,WAAf,CAA2BvH,4BAA3B,CAA9B,IAA0FwmC,YAAY,KAAK,IAAhJ;;EACA,UAAIuB,4BAAJ,EAAkC;EAChC1iC,QAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BsM,OAA1B;;EACA,YAAI,CAAC6lB,UAAU,CAACxjB,SAAhB,EAA2B;EACzBmkB,UAAAA,iBAAiB,CAACxmB,OAAD,CAAjB;EACAnd,UAAAA,cAAc,CAACsD,WAAf,CAA2B,yBAA3B,EAAsDmgB,GAAtD;EACD;EACF;EACF;EACF;EACF,CApFM;EAsFA,MAAMmf,cAAc,GAAII,UAAD,IAAgB;EAC5C,MAAI9hC,QAAQ,CAACiV,cAAT,CAAwB,cAAxB,KAA2CioB,YAAY,CAACE,UAAb,KAA4B,SAA3E,EAAsF;EAEtF,QAAM;EAAEqE,IAAAA,cAAc,EAAE;EAAEM,MAAAA,OAAF;EAAWlnB,MAAAA;EAAX;EAAlB,MAAyCinB,UAA/C;EAEA,QAAMa,WAAW,GAAGhB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE;EAAN,GAAR,CAA/C;EACA,QAAMqsC,QAAQ,GAAGjB,2BAA2B,CAAC,KAAD,EAAQ;EAClDprC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE4T,OAAO,CAACG,IAAR,CAAah4B,IAAb,KAAsB,SAAtB,uCAA+Dw2B,WAA/D,IAA+EqB,OAAO,CAACG,IAAR,CAAa33B;EAF/C,GAAR,CAA5C,CAN4C;;EAY5C,QAAMs4B,QAAQ,GAAGlB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,WAAN;EAAmBskB,IAAAA,KAAK,EAAE;EAA1B,GAAR,CAA5C;EACA,QAAMioB,QAAQ,GAAGnB,2BAA2B,CAAC,KAAD,EAAQ;EAClDprC,IAAAA,EAAE,EAAE,WAD8C;EAElD43B,IAAAA,GAAG,EAAE;EAF6C,GAAR,CAA5C;EAIA,QAAM4U,UAAU,GAAGpB,2BAA2B,CAAC,KAAD,EAAQ;EAAEprC,IAAAA,EAAE,EAAE,aAAN;EAAqB4jB,IAAAA,SAAS,EAAE;EAAhC,GAAR,CAA9C;EAEA0oB,EAAAA,QAAQ,CAAClzB,WAAT,CAAqBmzB,QAArB;EACAD,EAAAA,QAAQ,CAAClzB,WAAT,CAAqBozB,UAArB;EAEAJ,EAAAA,WAAW,CAAChzB,WAAZ,CAAwBizB,QAAxB;EACAD,EAAAA,WAAW,CAAChzB,WAAZ,CAAwBkzB,QAAxB;;EACA,MAAId,OAAO,CAACiB,SAAR,CAAkBlG,OAAtB,EAA+B;EAC7B,UAAMmG,OAAO,GAAGtB,2BAA2B,CAAC,KAAD,EAAQ;EACjDprC,MAAAA,EAAE,EAAE,cAD6C;EAEjD+9B,MAAAA,WAAW,EAAEyN,OAAO,CAACiB,SAAR,CAAkBllB;EAFkB,KAAR,CAA3C;EAIA6kB,IAAAA,WAAW,CAAChzB,WAAZ,CAAwBszB,OAAxB;EACD;;EAEDZ,EAAAA,kBAAkB,CAACM,WAAD,EAAc9nB,KAAK,CAACmgB,IAAN,CAAW/K,QAAzB,CAAlB,CAhC4C;;EAkC5C,QAAMoE,YAAY,GAAGsN,2BAA2B,CAAC,OAAD,EAAU;EAAErN,IAAAA,WAAW,EAAEqH,iBAAiB,CAAC9gB,KAAD;EAAhC,GAAV,CAAhD;EAEA7a,EAAAA,QAAQ,CAACsuB,IAAT,CAAc3e,WAAd,CAA0B0kB,YAA1B;EACAr0B,EAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0BgzB,WAA1B;;EAEA,MAAI,CAACb,UAAU,CAACxjB,SAAhB,EAA2B;EACzB4kB,IAAAA,qBAAqB,CAACP,WAAD,CAArB;EACD;;EACD,SAAOA,WAAP;EACD,CA3CM;EA6CA,MAAMQ,YAAY,GAAIC,SAAD,IAAe;EACzCxC,EAAAA,YAAY,GAAGwC,SAAf;EACD,CAFM;EAIA,MAAMX,iBAAiB,GAAIxmB,OAAD,IAAa;EAC5C,QAAMwf,aAAa,GAAGxf,OAAO,CAAC8V,aAAR,CAAsB,gBAAtB,CAAtB;EACA,QAAM2J,eAAe,GAAGzf,OAAO,CAAC8V,aAAR,CAAsB,kBAAtB,CAAxB;;EAEA,QAAMsR,aAAa,GAAG;EAAA;;EAAA,kCAAMpnB,OAAO,CAAC3M,UAAd,wDAAM,oBAAoBC,WAApB,CAAgC0M,OAAhC,CAAN;EAAA,GAAtB;;EAEAwf,EAAAA,aAAa,CAAClhB,gBAAd,CAA+B,OAA/B,EAAwC,MAAM;EAC5C8oB,IAAAA,aAAa;EACbxC,IAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,IAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;EACD,GAJD;EAMAV,EAAAA,eAAe,CAACnhB,gBAAhB,CAAiC,OAAjC,EAA0C,MAAM;EAC9C8oB,IAAAA,aAAa;EACd,GAFD;EAGD,CAfM;EAiBA,MAAMH,qBAAqB,GAAIP,WAAD,IAAiB;EACpD,QAAMC,QAAQ,GAAGD,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA6Q,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,OAA1B,EAAmC,MAAM;EACvC,QAAI2iB,YAAY,CAACE,UAAb,KAA4B,QAAhC,EAA0C;EACxCkG,MAAAA,cAAc,CAACX,WAAD,CAAd;EACD,KAFD,MAEO;EACL9B,MAAAA,mBAAmB,CAAClE,uBAApB,CAA4CiE,YAA5C;EACAC,MAAAA,mBAAmB,CAACvE,yBAApB,CAA8C,IAA9C,EAAoDF,MAApD,EAA4D,IAA5D,EAAkE,IAAlE;;EACA,UAAIc,YAAY,CAACE,UAAb,KAA4B,SAAhC,EAA2C;EACzCuF,QAAAA,WAAW,CAACjjC,MAAZ;EACD;EACF;EACF,GAVD;EAWAkjC,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMgpB,cAAc,CAACZ,WAAD,CAA5D;EACAC,EAAAA,QAAQ,CAACroB,gBAAT,CAA0B,YAA1B,EAAwC,MAAMipB,YAAY,CAACb,WAAD,CAA1D;EACAA,EAAAA,WAAW,CAAC5Q,aAAZ,CAA0B,cAA1B,EAA0CxX,gBAA1C,CAA2D,OAA3D,EAAoE,MAAM+oB,cAAc,CAACX,WAAD,CAAxF;EACD,CAhBM;EAkBA,MAAMN,kBAAkB,GAAG,CAAC7U,OAAD,EAAUyC,QAAV,KAAuB;EACvD30B,EAAAA,MAAM,CAACmoC,MAAP,CAAcjW,OAAO,CAAC3S,KAAtB,EAA6B;EAC3B6oB,IAAAA,KAAK,EAAE,MADoB;EAE3BC,IAAAA,SAAS,EAAE;EAFgB,GAA7B;EAKA,QAAMC,SAAS,GAAG;EAChB,iBAAa;EAAEF,MAAAA,KAAK,EAAE;EAAT,KADG;EAEhB,gBAAY;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAFI;EAGhB,oBAAgB;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAHA;EAIhB,mBAAe;EAAEA,MAAAA,KAAK,EAAE;EAAT,KAJC;EAKhBG,IAAAA,MAAM,EAAE;EAAEH,MAAAA,KAAK,EAAE,KAAT;EAAgBC,MAAAA,SAAS,EAAE;EAA3B,KALQ;EAMhBG,IAAAA,GAAG,EAAE;EAAEJ,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C,KANW;EAOhBI,IAAAA,MAAM,EAAE;EAAEL,MAAAA,KAAK,EAAE,oBAAT;EAA+BC,MAAAA,SAAS,EAAE;EAA1C;EAPQ,GAAlB;EAUAroC,EAAAA,MAAM,CAACmoC,MAAP,CAAcjW,OAAO,CAAC3S,KAAtB,EAA6B+oB,SAAS,CAAC3T,QAAD,CAAT,IAAuB2T,SAAS,CAAC,WAAD,CAA7D;EACD,CAjBM;;EAmBP,MAAML,cAAc,GAAIZ,WAAD,IAAiB;EACtC,QAAME,QAAQ,GAAGF,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;;EACA,MAAI8Q,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,KAA2B,MAA/B,EAAuC;EACrC;EACD;;EACD,QAAMgpB,OAAO,GAAGN,WAAW,CAAC5Q,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIkR,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACpoB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;;EAED,QAAM2oB,QAAQ,GAAGD,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA,QAAMiS,QAAQ,GAAGpB,QAAQ,CAACre,qBAAT,EAAjB;EACA,MAAI0f,IAAI,GAAG/iC,MAAM,CAACwqB,UAAP,GAAoB,CAA/B;EACA,MAAIwY,IAAI,GAAGhjC,MAAM,CAAC0qB,WAAP,GAAqB,CAAhC;EACA+W,EAAAA,WAAW,CAAC9nB,KAAZ,CAAkB,gBAAlB,IAAsCmpB,QAAQ,CAACrlC,CAAT,GAAaulC,IAAb,GAAoB,gBAApB,GAAuC,QAA7E;EACAvB,EAAAA,WAAW,CAAC9nB,KAAZ,CAAkB,aAAlB,IAAmCmpB,QAAQ,CAACjY,CAAT,GAAakY,IAAb,GAAoB,UAApB,GAAiC,YAApE;EACD,CAhBD;;EAkBA,MAAMT,YAAY,GAAIb,WAAD,IAAiB;EACpC,QAAMM,OAAO,GAAGN,WAAW,CAAC5Q,aAAZ,CAA0B,eAA1B,CAAhB;;EACA,MAAIkR,OAAJ,EAAa;EACXA,IAAAA,OAAO,CAACpoB,KAAR,CAAcZ,OAAd,GAAwB,MAAxB;EACD;EACF,CALD;;EAOA,MAAMqpB,cAAc,GAAIX,WAAD,IAAiB;EACtCa,EAAAA,YAAY,CAACb,WAAD,CAAZ;EACA,QAAME,QAAQ,GAAGF,WAAW,CAAC5Q,aAAZ,CAA0B,YAA1B,CAAjB;EACA8Q,EAAAA,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,GAAyB4oB,QAAQ,CAAChoB,KAAT,CAAeZ,OAAf,KAA2B,MAA3B,GAAoC,MAApC,GAA6C,MAAtE;EACD,CAJD;;ECrPA,MAAMkqB,GAAG,GAAG,CAAC5nB,GAAD,WAKN;EAAA,MALY;EAChBpW,IAAAA,MADgB;EAEhBC,IAAAA,OAFgB;EAGhBF,IAAAA,OAHgB;EAIhBtJ,IAAAA;EAJgB,GAKZ;EACJ,QAAMu9B,OAAO,GAAGh0B,MAAhB;EACA,QAAMgT,QAAQ,GAAG/S,OAAjB;EACA,QAAM2zB,QAAQ,GAAG7zB,OAAjB;EACA,QAAMk+B,OAAO,GAAGxnC,MAAhB;EACA,MAAIynC,WAAW,GAAG,CAAlB,CALI;;EAOJ,QAAMC,kBAAkB,GAAI3T,gBAAD,IAAsB;EAC/C,UAAM5f,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMpD,KAAK,GAAGD,QAAQ,EAAtB;;EAEA,UAAMgnC,SAAS,GAAG,CAAC1oC,GAAD,EAAMkV,UAAN,EAAkByzB,mBAAlB,KAA0C;EAC1D,UAAIC,YAAY,GAAG,CAAnB;EACA,UAAIC,UAAU,GAAG,CAAjB;;EACA,UAAI7oC,GAAG,CAACkV,UAAD,CAAH,IAAmB,IAAvB,EAA6B;EAC3B0zB,QAAAA,YAAY,GAAG5oC,GAAG,CAACkV,UAAD,CAAlB;EACD;;EACD0zB,MAAAA,YAAY;;EACZ,UAAI5oC,GAAG,CAAC6V,EAAJ,IAAU,IAAd,EAAoB;EAClBgzB,QAAAA,UAAU,GAAG7oC,GAAG,CAAC6V,EAAjB;EACD,OATyD;;;EAW1D,UAAI8yB,mBAAmB,GAAG,CAA1B,EAA6B;EAC3BE,QAAAA,UAAU;EACX;;EAED7oC,MAAAA,GAAG,CAAC6V,EAAJ,GAASgzB,UAAT;EACA7oC,MAAAA,GAAG,CAACkV,UAAD,CAAH,GAAkB0zB,YAAlB;EACD,KAjBD;;EAmBA,QAAI3lC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,aAAO2lC,cAAc,CAAChtC,gBAAD,CAArB;EACA,UAAIitC,WAAW,GAAG,EAAlB;EACA,YAAM90B,OAAO,GAAGF,iBAAiB,EAAjC;;EACA,UAAI+gB,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,IAA+C/0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAAnD,EAAiF;EAC/E6oC,QAAAA,WAAW,GAAG90B,OAAO,CAACyB,EAAtB;EACD,OAFD,MAEO,IAAI,CAACof,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,IAA+ClU,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1F,KAAgG/0B,OAAO,CAAC/T,cAAR,CAAuB,IAAvB,CAApG,EAAkI;EACvI6oC,QAAAA,WAAW,GAAG90B,OAAO,CAACC,EAAtB;EACD,OAFM,MAEA;EACL60B,QAAAA,WAAW,GAAG,EAAd;EACD;;EACD,UAAI90B,OAAO,CAAC/T,cAAR,CAAuB,QAAvB,CAAJ,EAAsC;EACpC6oC,QAAAA,WAAW,CAAC70B,EAAZ,GAAiBD,OAAjB;EACD,OAb4C;;;EAe7C,UAAI6gB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,IAAiC,IAArC,EAA2C;EACzCnU,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,GAAgC,CAAhC;EACD,OAjB4C;;;EAoB7C,UAAInU,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,IAAkC,IAAtC,EAA4C;EAC1CpU,QAAAA,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,GAAiC,CAAjC;EACD;;EAED,UAAIP,mBAAmB,GAAG,CAAC,CAA3B,CAxB6C;;EAyB7C,UAAIQ,oBAAoB,GAAG,CAAC,CAA5B,CAzB6C;;EA0B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA1B6C;;EA2B7C,UAAIC,kBAAkB,GAAG,CAAC,CAA1B,CA3B6C;;EA4B7C,UAAIC,eAAe,GAAG,CAAC,CAAvB;EACA,UAAIC,iBAAiB,GAAG,CAAC,CAAzB,CA7B6C;;EA8B7C,UAAIC,sBAAsB,GAAG,CAAC,CAA9B,CA9B6C;;EAgC7C,UAAI1U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BgtC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3Cd,QAAAA,mBAAmB,GAAGxR,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BgtC,GAA3B,EAAgC,EAAhC,CAA9B;EACD;;EACD,UAAI3U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BitC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,oBAAoB,GAAGhS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BitC,GAA3B,EAAgC,EAAhC,CAA/B;EACD;;EACD,UAAI5U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BktC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CP,QAAAA,kBAAkB,GAAGjS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BktC,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI7U,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CqzB,QAAAA,kBAAkB,GAAGlS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BuZ,GAA3B,EAAgC,EAAhC,CAA7B;EACD;;EACD,UAAI8e,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CwzB,QAAAA,eAAe,GAAGnS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BqZ,GAA3B,EAAgC,EAAhC,CAA1B;EACD;;EACD,UAAIgf,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA1B,IAAiC,IAArC,EAA2C;EAAE;EAC3CM,QAAAA,iBAAiB,GAAGpS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BwsC,GAA3B,EAAgC,EAAhC,CAA5B;EACD;;EAED,UAAInU,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA1B,IAAkC,IAAtC,EAA4C;EAAE;EAC5CM,QAAAA,sBAAsB,GAAGrS,QAAQ,CAACrC,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BysC,IAA3B,EAAiC,EAAjC,CAAjC;EACD,OArD4C;;;EAuD7C,UAAIj+B,UAAU,GAAG89B,WAAW,CAACzrB,QAAQ,CAACe,SAAV,CAA5B;;EACA,UAAIpT,UAAJ,EAAgB;EACd,cAAM2+B,oBAAoB,GAAG3+B,UAAU,CAACiK,UAAD,CAAvC;EACA,cAAM20B,iBAAiB,GAAG5+B,UAAU,CAAC4K,EAArC,CAFc;;EAId,YAAI+zB,oBAAoB,KAAK,KAAzB,IAAkC,CAAClkC,GAAG,CAAC8C,kBAA3C,EAA+D;EAC7D,iBAAO,KAAP;EACD;;EAED,YAAIssB,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BusC,YAA1B,KAA2C,CAA/C,EAAkD;EAChD;EACA,cAAIQ,sBAAsB,GAAG,CAAzB,IAA8BK,iBAAiB,IAAIL,sBAAnD,IAA6Eb,mBAAmB,GAAG,CAAvG,EAA0G;EACxG,mBAAO,KAAP;EACD;EACF,SALD,MAKO;EACL;EACA,cAAIY,iBAAiB,GAAG,CAApB,IAAyBM,iBAAiB,IAAIN,iBAA9C,IAAmEZ,mBAAmB,GAAG,CAA7F,EAAgG;EAC9F,mBAAO,KAAP;EACD;EACF,SAlBa;;;EAqBd,YAAIQ,oBAAoB,GAAG,CAAvB,IAA4BS,oBAAoB,IAAIT,oBAAxD,EAA8E;EAC5E,iBAAO,KAAP;EACD;EACF,OAxBD,MAwBO;EACLl+B,QAAAA,UAAU,GAAG,EAAb;EACA89B,QAAAA,WAAW,CAACzrB,QAAQ,CAACe,SAAV,CAAX,GAAkCpT,UAAlC;EACD,OAnF4C;;;EAsF7C,UAAI4J,QAAQ,GAAGk0B,WAAW,CAACpnC,KAAD,CAA1B;;EACA,UAAIkT,QAAQ,IAAI,IAAhB,EAAsB;EACpB,cAAMi1B,kBAAkB,GAAGj1B,QAAQ,CAACK,UAAD,CAAnC;EACA,cAAM60B,eAAe,GAAGl1B,QAAQ,CAACgB,EAAjC,CAFoB;;EAIpB,YAAIyzB,eAAe,GAAG,CAAlB,IAAuBS,eAAe,IAAIT,eAA1C,IAA6DX,mBAAmB,GAAG,CAAvF,EAA0F;EACxF,iBAAO,KAAP;EACD,SANmB;;;EAQpB,YAAIS,kBAAkB,GAAG,CAArB,IAA0BU,kBAAkB,IAAIV,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAXD,MAWO;EACLv0B,QAAAA,QAAQ,GAAG,EAAX;EACAk0B,QAAAA,WAAW,CAACpnC,KAAD,CAAX,GAAqBkT,QAArB;EACD;;EAED,UAAID,SAAS,GAAGm0B,WAAW,CAACvsC,MAAD,CAA3B;;EACA,UAAIoY,SAAS,IAAI,IAAjB,EAAuB;EACrB,cAAMo1B,kBAAkB,GAAGp1B,SAAS,CAACM,UAAD,CAApC,CADqB;;EAGrB,YAAIm0B,kBAAkB,GAAG,CAArB,IAA0BW,kBAAkB,IAAIX,kBAApD,EAAwE;EACtE,iBAAO,KAAP;EACD;EACF,OAND,MAMO;EACLz0B,QAAAA,SAAS,GAAG,EAAZ;EACAm0B,QAAAA,WAAW,CAACvsC,MAAD,CAAX,GAAsBoY,SAAtB;EACD;EACF,KAzI8C;;;EA2I/C,UAAMq1B,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC;;EACA,QAAI6rB,UAAU,CAACC,KAAX,IAAoB,IAApB,IAA4BD,UAAU,CAACC,KAAX,GAAmB,CAAnD,EAAsD;EACpD,YAAMA,KAAK,GAAGD,UAAU,CAACC,KAAzB;EACAD,MAAAA,UAAU,CAACC,KAAX,GAAmB,CAAnB;EACA/2B,MAAAA,UAAU,CAACm1B,GAAD,EAAM4B,KAAK,GAAG,IAAd,EAAoBxpB,GAApB,EAAyB;EACjCpW,QAAAA,MAAM,EAAEg0B,OADyB;EAEjC/zB,QAAAA,OAAO,EAAE+S,QAFwB;EAGjCjT,QAAAA,OAAO,EAAE6zB,QAHwB;EAIjCn9B,QAAAA,MAAM,EAAEwnC;EAJyB,OAAzB,CAAV;EAMA,aAAO,KAAP;EACD;;EAEDG,IAAAA,SAAS,CAACz9B,UAAD,EAAaiK,UAAb,EAAyByzB,mBAAzB,CAAT;EACAD,IAAAA,SAAS,CAAC7zB,QAAD,EAAWK,UAAX,EAAuByzB,mBAAvB,CAAT;EACAD,IAAAA,SAAS,CAAC9zB,SAAD,EAAYM,UAAZ,EAAwByzB,mBAAxB,CAAT;EAEA,QAAIwB,OAAO,GAAG,IAAd;;EACA,QAAIrV,gBAAgB,CAACr4B,OAAD,CAAhB,CAA0BusC,YAA1B,KAA2C,CAA/C,EAAkD;EAChDmB,MAAAA,OAAO,GAAG,IAAV;EACD,KA/J8C;;;EAiK/C,UAAMC,UAAU,GAAG,EAAnB;EACAA,IAAAA,UAAU,CAAC9sB,QAAQ,CAACe,SAAV,CAAV,GAAiCpT,UAAjC;EACAm/B,IAAAA,UAAU,CAACzoC,KAAD,CAAV,GAAoBkT,QAApB;EACAu1B,IAAAA,UAAU,CAAC5tC,MAAD,CAAV,GAAqBoY,SAArB;EACAT,IAAAA,kBAAkB,CAAC;EAAE,OAACg2B,OAAD,GAAWC;EAAb,KAAD,CAAlB;EACD,GAtKD;;EAwKA,QAAMC,aAAa,GAAG,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,KAA4D;EAChFJ,IAAAA,mBAAmB,CAACnJ,gBAAD,EAAmBoJ,QAAnB,CAAnB;EACAC,IAAAA,eAAe,CAACrE,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CklB,QAA/C,EAAyDC,OAAzD,EAAkEhhB,QAAlE,CAAf;EACD,GAHD;;EAKA,QAAMgtB,oBAAoB,GAAIxV,gBAAD,IAAsB;EACjD,UAAM3b,KAAK,GAAG,kBAAd;;EACA,QAAIsvB,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EACD,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACAwY,MAAAA,OAAO,CAAC9tB,MAAR;EACD,KARgD;;;EAUjD,QAAIM,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAlC,IAA0ChV,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA1F,EAAgG;EAC9F;EACD;;EACD,UAAMmxB,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAYye,KAAZ;EACAhV,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;;EACA,QAAIjb,cAAc,CAAClmB,GAAf,CAAmB,wBAAnB,MAAiDxI,SAArD,EAAgE;EAC9D0uB,MAAAA,cAAc,CAACC,MAAf,CAAsB,wBAAtB,EAAgDpS,mBAAhD;EACD;;EACD,WAAO4hB,oBAAoB,CAACjK,gBAAD,EAAmBxX,QAAnB,CAA3B;EACD,GApBD;;EAsBA,QAAMktB,kBAAkB,GAAIt1B,UAAD,IAAgB;EACzC,UAAMu1B,UAAU,GAAGtmC,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,KAAgDjV,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,CAAnE;;EACA,QAAIqxB,UAAJ,EAAgB;EACd,YAAMC,cAAc,GAAGD,UAAU,CAACE,eAAX,IAA8BF,UAAU,CAACG,aAAX,CAAyBzmC,QAA9E;EACA,aAAOumC,cAAc,CAACvW,eAAf,CAA+B7V,SAA/B,CAAyClQ,QAAzC,CAAkD8G,UAAlD,CAAP;EACD;;EACD,WAAO,KAAP;EACD,GAPD;;EASA,QAAM21B,cAAc,GAAG,CAAC/V,gBAAD,EAAmBgW,YAAnB,KAAoC;EACzD,UAAM51B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMklC,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC;;EAEA,QAAI6rB,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7B,aAAOC,cAAc,CAACpqC,SAAD,EAAYk0B,gBAAZ,CAArB;EACD;;EACD,QAAImV,UAAU,CAACc,MAAX,KAAsB,CAA1B,EAA6B;EAAE;EAC7BT,MAAAA,oBAAoB,CAACxV,gBAAD,CAApB;EACA;EACD;;EAED,QAAI2T,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,UAAM3b,KAAK,GAAG,cAAc8wB,UAAU,CAACc,MAAvC;EACA,UAAME,YAAY,GAAG,qBAAqBhB,UAAU,CAACc,MAArD;;EAEA,QAAIrlC,GAAG,CAAC8C,kBAAJ,IAA0BrE,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAhE,EAAsE;EACpE,YAAMwY,OAAO,GAAGxtB,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,CAAhB;EACA,YAAM+xB,cAAc,GAAG/mC,QAAQ,CAACiV,cAAT,CAAwB6xB,YAAxB,CAAvB;;EACA,UAAItZ,OAAJ,EAAa;EACXA,QAAAA,OAAO,CAAC9tB,MAAR;EACD;;EACD,UAAIqnC,cAAJ,EAAoB;EAClBA,QAAAA,cAAc,CAACrnC,MAAf;EACD;EACF;;EACD,QAAI2mC,kBAAkB,CAACt1B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI/Q,QAAQ,CAACiV,cAAT,CAAwBD,KAAxB,KAAkC,IAAtC,EAA4C;EAC1C;EACD;;EAEDzT,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiCiE,KAAjC;EACA,UAAMgyB,QAAQ,GAAGlB,UAAU,CAACc,MAAX,KAAsB,CAAvC;;EACA,QAAID,YAAJ,EAAkB;EAChB,YAAMM,UAAU,GAAGjnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAg8B,MAAAA,UAAU,CAAC1wC,EAAX,GAAgBuwC,YAAhB;EACA,YAAMI,OAAO,GAAGvW,gBAAgB,CAAC1W,OAAjB,CAAyBitB,OAAzB,IAAoC,GAApD;EACA,YAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,MAAAA,UAAU,CAACz3B,YAAX,CAAwB,OAAxB,8GAAsI23B,SAAtI;EACAnnC,MAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bs3B,UAA1B;EACD;;EACD,UAAMb,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAYye,KAAZ;EACA,UAAMoyB,UAAU,GAAGlmC,MAAM,CAAC0qB,WAA1B;EACA,UAAMyb,SAAS,GAAGnmC,MAAM,CAACwqB,UAAzB;EACA,QAAI4b,MAAM,GAAG,KAAb;;EACA,QAAI,CAACN,QAAL,EAAe;EACb,YAAMO,YAAY,GAAGH,UAAU,GAAG,CAAb,GAAiB,GAAtC;EACA,UAAII,aAAa,GAAG,EAApB;EACA,UAAIljB,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAA5B;EACA,UAAII,cAAc,GAAGD,aAAa,GAAGD,YAArC;EACA,UAAIrsB,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAAnC;EACA,UAAIK,UAAU,GAAG,YAAjB,CANa;;EAQb,UAAI,CAAC,UAAUprC,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,KAAwC,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAAzC,KAAgF,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,MAAsC,KAA1H,EAAiI;EAC/H5gB,QAAAA,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACA/iB,QAAAA,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb,CAJ+H;EAMhI,OAND,MAMO,IAAI,kBAAkBxmC,MAAlB,IAA6B,UAAU5E,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAAjC,EAAuE;EAC5E5gB,QAAAA,KAAK,GAAGmsB,SAAS,GAAG,EAAZ,GAAiB,GAAjB,GAAuB,EAA/B;EACA/iB,QAAAA,KAAK,GAAG+iB,SAAS,GAAG,CAAZ,GAAgB,GAAxB;EACAI,QAAAA,cAAc,GAAGL,UAAU,GAAG,CAAb,GAAiB,GAAlC;EACAM,QAAAA,UAAU,GAAG,YAAb;EACD,OAnBY;;;EAqBb,UAAI5B,UAAU,CAAC6B,KAAX,IAAoB,IAAxB,EAA8B;EAC5BL,QAAAA,MAAM,GAAG,IAAT;EACAlB,QAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6B,2CAA2Ci4B,cAA3C,GAA4D,sBAA5D,GAAqFvsB,KAArF,GAA6F,sBAA7F,GAAsHoJ,KAAtH,GAA8H,kDAA3J;EACD,OAHD,MAGO;EACL8hB,QAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6Bk4B,UAAU,GAAG5B,UAAU,CAAC8B,WAArD;EACD;EACF,KA3BD,MA2BO;EACLxB,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6Bs2B,UAAU,CAAC8B,WAAxC;EACD;;EACD5nC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;EACA,UAAMyB,MAAM,GAAG7nC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EAEA,UAAMuwB,YAAY,GAAGsK,UAAU,CAACgC,EAAX,KAAkB,KAAlB,GAA0B,GAA1B,GAAgC,GAArD;EAEAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAACtxC,EAAP,GAAY,YAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIwS,UAAU,GAAG,EAAjB;;EACA,QAAIxS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCwS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIrC,UAAU,CAACxL,OAAX,IAAsBwL,UAAU,CAAC,eAAD,CAApC,EAAuD;EACrD+B,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EAED,QAAI7sB,IAAJ,CAnGyD;;EAqGzD,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,+DAHU,GAGwD6sB,UAHxD,GAGqE,GAHrE,GAIV,yCAJU,GAKV,+GALU,GAMV,8GANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,yBAZU,GAaV,qEAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAapkB,SAAb,EAAwBqkB,KAAxB,EAA+BC,MAA/B,EAAuCC,OAAvC;;EACA,UAAI7X,gBAAgB,CAAC1W,OAAjB,CAAyBwuB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAC,QAAAA,MAAM,GAAG,SAAT;EACAC,QAAAA,OAAO,GAAG,SAAV;EACD,OAND,MAMO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAskB,QAAAA,MAAM,GAAG,SAAT;EACAD,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGxO,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqrB,eAAe,GAAG/X,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAIorB,OAAO,GAAG,EAAd;;EACA,UAAIhY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6rB,QAAAA,OAAO,GAAG,+CAA+CJ,MAA/C,GAAwD,cAAxD,GAAyE5X,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAArG,GAAgH,gCAA1H;EACD;;EACD,YAAM8rB,UAAU,GAAG,iCAAiC73B,UAAjC,GAA8C,IAA9C,GAAqDiE,KAArD,GAA6D,KAAhF;EACA,YAAMqI,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EokB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,oDAHY;EAKZ,YALY,GAKHG,OALG,GAKO,kCALP,GAMZ,wCANY,GAM+B1kB,SAN/B,GAM2C,IAN3C,GAMkDkb,SANlD,GAM8D,QAN5E;EAOA,YAAMjb,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DykB,eAA7D,GAA+E,+BAA5F;EACAntB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EAED2jB,IAAAA,MAAM,CAACr4B,YAAP,CAAoB,OAApB,EAA6B,kHAA7B;EACA42B,IAAAA,MAAM,CAACz2B,WAAP,CAAmBk4B,MAAnB,EA3JyD;;EA8JzD,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9oC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsV,aAAvB;;EAEA,QAAI/C,UAAU,CAAC,eAAD,CAAd,EAAiC;EAC/BvqB,MAAAA,IAAI,GAAG+d,0BAA0B,CAAC3I,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDssB,IAAAA,MAAM,CAACkB,MAAP,GAAgBxtB,IAAhB;;EAEA,UAAMytB,kBAAkB,GAAG,MAAM;EAC/B;EACAxB,MAAAA,aAAa,GAAGxnC,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,EAAmFg0B,YAAnG;;EACA,UAAInD,UAAU,CAAC,eAAD,CAAV,KAAgC,IAAhC,IAAwC,CAACkB,QAA7C,EAAuD;EACrDQ,QAAAA,aAAa,IAAI,EAAjB;EACD;;EACDxnC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDtiB,IAAtD,CAA2DrJ,KAA3D,CAAiEquB,MAAjE,GAA0E,KAA1E;EACAlpC,MAAAA,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsC4F,KAAtC,CAA4CgB,MAA5C,GAAqD2rB,aAAa,GAAG,IAArE;EACD,KARD;;EAUA,UAAM3L,EAAE,GAAG/c,SAAS,CAACgd,SAAV,CAAoB7kB,WAApB,EAAX;;EACA,QAAI4kB,EAAE,CAAC76B,OAAH,CAAW,QAAX,MAAyB,CAAC,CAA9B,EAAiC;EAC/B,UAAI66B,EAAE,CAAC76B,OAAH,CAAW,QAAX,IAAuB,CAAC,CAA5B,EAA+B;EAC7B6mC,QAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpBwY,UAAAA,kBAAkB;EAClB,gBAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,UAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD,SAJD;EAKD,OAND,MAMO;EACL,YAAI6B,KAAK,GAAGtB,MAAM,CAACrB,eAAP,IAA0BqB,MAAM,CAACpB,aAA7C;EACA,YAAI0C,KAAK,CAACnpC,QAAV,EAAoBmpC,KAAK,GAAGA,KAAK,CAACnpC,QAAd,CAFf;;EAIL,cAAMopC,MAAM,GAAG7e,WAAW,CAAC,MAAM;EAC/B,cAAI4e,KAAK,CAACje,UAAN,KAAqB,UAAzB,EAAqC;EACnCV,YAAAA,aAAa,CAAC4e,MAAD,CAAb,CADmC;;EAGnCJ,YAAAA,kBAAkB;EAClB,kBAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,YAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD;EACF,SARyB,EAQvB,GARuB,CAA1B;EASD;EACF,KArBD,MAqBO;EACLO,MAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpB;EACAwY,QAAAA,kBAAkB;EAClB,cAAM/O,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,YAAxB,EAAsCuxB,eAAtC,CAAsDvxB,cAAtD,CAAqE,YAArE,CAAnB;EACAixB,QAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwCjlB,KAAxC,EAA+CsyB,MAA/C,CAAb;EACD,OALD;EAMD;EACF,GA9MD;;EA+MA,QAAM+B,wBAAwB,GAAI1Y,gBAAD,IAAsB;EACrD+V,IAAAA,cAAc,CAAC/V,gBAAD,EAAmB,KAAnB,CAAd;EACD,GAFD;;EAIA,MAAI2Y,eAAe,GAAG,KAAtB;;EAEA,QAAMC,sBAAsB,GAAI5Y,gBAAD,IAAsB;EACnD,QAAIgF,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAvC;EACA,UAAMmQ,UAAU,GAAGnV,gBAAgB,CAAC1W,OAApC,CAFmD;;EAKnD,QAAI/Y,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,sBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAAxB,KAAiD,WAD/C,IAEF,OAAOtoC,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAAxB,KAAiD,UAFnD,EAE+D;EAC7D,YAAMA,oBAAoB,GAAGtoC,MAAM,CAAC+N,SAAP,CAAiBu6B,oBAA9C;;EAEA,UAAI,CAACF,eAAL,EAAsB;EACpB,cAAMpW,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EACA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EACD,YAAI4W,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD;;EAEDxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBgf,wBAAjB,GAA4C,MAAM;EAChD,cAAI0H,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrC,kBAAMyD,MAAM,GAAGzI,gBAAgB,CAAC1W,OAAjB,CAAyBmf,MAAxC;EACAzD,YAAAA,OAAO,IAAI4E,eAAe,CAACJ,OAAD,EAAUhhB,QAAV,CAA1B,CAFqC;;EAKrC,gBAAIigB,MAAM,IAAI,IAAd,EAAoB;EAClB;EACAprB,cAAAA,iBAAiB,CAACG,WAAlB,CAA8BwnB,OAA9B;EACAwD,cAAAA,gBAAgB,CAACC,MAAD,EAASzI,gBAAT,CAAhB;EACA;EACD,aAVoC;;;EAYrC,gBAAIA,gBAAgB,CAAC1W,OAAjB,CAAyB/Y,MAAzB,KAAoC,CAAxC,EAA2C;EACzCA,cAAAA,MAAM,CAAC6Z,IAAP,CAAY4a,OAAZ,EAAqB,QAArB;EACD,aAFD,MAEO;EACLz0B,cAAAA,MAAM,CAACG,QAAP,GAAkBs0B,OAAlB;EACD;EACF;EACF,SAnBD;;EAoBAz0B,QAAAA,MAAM,CAAC+N,SAAP,CAAiBw6B,uBAAjB,GAA2C,MAAM;EAC/C3P,UAAAA,mBAAmB,CAACnJ,gBAAD,CAAnB;EACD,SAFD;;EAGA6Y,QAAAA,oBAAoB,CAACtW,MAAD,CAApB;EACAoW,QAAAA,eAAe,GAAG,IAAlB;EACD;EACF,KA1CD,MA0CO;EACLpoC,MAAAA,MAAM,CAAC+N,SAAP,CAAiBy6B,kBAAjB,GAAsC/Y,gBAAgB,CAAC9W,OAAvD;;EAEA,UAAIisB,UAAU,CAAC6D,eAAf,EAAgC;EAC9B,YAAI7D,UAAU,CAAC6D,eAAX,CAA2BC,QAA/B,EAAyC;EACvCC,UAAAA,mBAAmB,CAAClZ,gBAAD,CAAnB;EACD;;EACD,YAAImV,UAAU,CAAC6D,eAAX,CAA2BG,MAA/B,EAAuC;EACrCC,UAAAA,eAAe,CAACpZ,gBAAD,CAAf;EACD;;EACD,YAAImV,UAAU,CAAC6D,eAAX,CAA2BhD,YAA/B,EAA6C;EAC3CqD,UAAAA,aAAa,GAAGrZ,gBAAhB;EACAzvB,UAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB+lB,YAArB,GAAoCpD,cAApC;EACD,SAV6B;;;EAY9B,cAAMd,KAAK,GAAGD,UAAU,CAACC,KAAX,IAAoBD,UAAU,CAAC6D,eAAX,CAA2BO,eAA7D;;EACA,YAAInE,KAAK,IAAI,IAAT,IAAiBA,KAAK,GAAG,CAA7B,EAAgC;EAC9B/2B,UAAAA,UAAU,CAAC,MAAM;EACfq6B,YAAAA,wBAAwB,CAAC1Y,gBAAD,CAAxB;EACD,WAFS,EAEPoV,KAAK,GAAG,IAFD,CAAV;EAGD;EACF,OAlBD,MAkBO;EACLsD,QAAAA,wBAAwB,CAAC1Y,gBAAD,CAAxB;EACD;;EAED,UAAIzvB,MAAM,CAAC+N,SAAP,CAAiBlT,cAAjB,CAAgC,gBAAhC,KACF,OAAOmF,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAxB,KAA2C,WADzC,IAEF,OAAOjpC,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAjB,CAAgCxZ,gBAAgB,CAAC9W,OAAjD,CAAP,KAAqE,UAFvE,EAEmF;EACjF,cAAMuwB,aAAa,GAAGlpC,MAAM,CAAC+N,SAAP,CAAiBk7B,cAAjB,CAAgCxZ,gBAAgB,CAAC9W,OAAjD,CAAtB;EAEA,cAAMqZ,MAAM,GAAG,EAAf;EACAA,QAAAA,MAAM,CAAC7X,UAAP,GAAoBsV,gBAAgB,CAACtV,UAArC;EACA6X,QAAAA,MAAM,CAACtZ,KAAP,GAAe+W,gBAAgB,CAAC9W,OAAhC;;EAEA,YAAI8W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/BmZ,UAAAA,MAAM,CAACpZ,OAAP,GAAiB6W,gBAAgB,CAAC5W,UAAlC;EACD;;EAED,YAAIuX,OAAO,GAAG,EAAd;;EACA,aAAK,IAAI+Y,aAAT,IAA0B1Z,gBAA1B,EAA4C;EAC1C;EACA,cAAI0Z,aAAa,CAAC7oB,UAAd,CAAyBjoB,WAAzB,KAAyC8wC,aAAa,KAAK7wC,OAA/D,EAAwE;EACtE,kBAAM8wC,QAAQ,GAAG;EAAE,eAACD,aAAD,GAAiB1Z,gBAAgB,CAAC0Z,aAAD;EAAnC,aAAjB;EACA/Y,YAAAA,OAAO,CAACtsB,IAAR,CAAaslC,QAAb;EACD;EACF;;EAED,YAAIhZ,OAAO,CAACr0B,MAAR,GAAiB,CAArB,EAAwB;EACtBi2B,UAAAA,MAAM,CAAC5B,OAAP,GAAiBA,OAAjB;EACD;;EACD,YAAIX,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAAzB,IAA+B,IAAnC,EAAyC;EACvCwU,UAAAA,MAAM,CAACxU,EAAP,GAAYiS,gBAAgB,CAAC1W,OAAjB,CAAyByE,EAArC;EACD,SAzBgF;;;EA4BjFxd,QAAAA,MAAM,CAAC+N,SAAP,CAAiBs7B,6BAAjB,GAAkDC,gBAAD,IAAsB;EACrE,cAAI,CAACA,gBAAD,IAAqB,CAACA,gBAAgB,CAAC5wB,KAA3C,EAAkD;EAAE;EAAQ;;EAE5D,gBAAMof,SAAS,GAAG,EAAlB;EACAA,UAAAA,SAAS,CAAC9uB,IAAV,GAAiB,OAAjB;EACA8uB,UAAAA,SAAS,CAACvvB,OAAV,GAAoB/P,oBAApB;EACAs/B,UAAAA,SAAS,CAAC5uB,OAAV,GAAoB;EAAE,aAAC5Q,OAAD,GAAWgxC,gBAAgB,CAAC5wB;EAA9B,WAApB;;EACA,cAAI+W,gBAAgB,CAAC5W,UAArB,EAAiC;EAC/Bif,YAAAA,SAAS,CAAC5uB,OAAV,GAAoB,EAAE,GAAG4uB,SAAS,CAAC5uB,OAAf;EAAwB2P,cAAAA,UAAU,EAAEywB,gBAAgB,CAAC1wB;EAArD,aAApB;EACD,WAToE;;;EAYrE,cAAI0wB,gBAAgB,CAAClZ,OAArB,EAA8B;EAC5B,iBAAK,IAAImZ,aAAT,IAA0BD,gBAAgB,CAAClZ,OAA3C,EAAoD;EAClD0H,cAAAA,SAAS,CAAC5uB,OAAV,GAAoB,EAAE,GAAG4uB,SAAS,CAAC5uB,OAAf;EAAwB,mBAAGqgC;EAA3B,eAApB;EACD;EACF;;EAED1Q,UAAAA,QAAQ,CAAC1vB,YAAT,CAAsB2uB,SAAtB;EACD,SAnBD;;EAoBAoR,QAAAA,aAAa,CAAClX,MAAD,CAAb;EACD;EACF;EACF,GA7HD;;EA+HA,QAAM2W,mBAAmB,GAAIa,WAAD,IAAiB;EAC3C,UAAMC,mBAAmB,GAAGD,WAAW,CAACzwB,OAAZ,CAAoB0vB,eAApB,CAAoCC,QAApC,GAA+C,IAA3E,CAD2C;;EAE3C,QAAIgB,SAAJ;EACA,UAAMC,MAAM,GAAG,CAAC,WAAD,EAAc,UAAd,EAA0B,QAA1B,EAAoC,WAApC,EAAiD,WAAjD,EAA8D,OAA9D,CAAf;;EACA,UAAMC,cAAc,GAAG,MAAM;EAC3BpT,MAAAA,YAAY,CAACkT,SAAD,CAAZ;EACAA,MAAAA,SAAS,GAAG57B,UAAU,CAAC,MAAM;EAC3Bq6B,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAK,QAAAA,oBAAoB;EACrB,OAHqB,EAGnBJ,mBAHmB,CAAtB;EAID,KAND;;EAOA,UAAMK,YAAY,GAAG,MAAM;EACzBF,MAAAA,cAAc;EACf,KAFD;;EAGA,UAAM7f,mBAAmB,GAAG,MAAM;EAChC4f,MAAAA,MAAM,CAACt6B,OAAP,CAAe06B,SAAS,IAAI/pC,MAAM,CAACqZ,gBAAP,CAAwB0wB,SAAxB,EAAmCD,YAAnC,EAAiD;EAAEE,QAAAA,OAAO,EAAE;EAAX,OAAjD,CAA5B;EACD,KAFD;;EAGA,UAAMH,oBAAoB,GAAG,MAAM;EACjCF,MAAAA,MAAM,CAACt6B,OAAP,CAAe06B,SAAS,IAAI/pC,MAAM,CAAC8hB,mBAAP,CAA2BioB,SAA3B,EAAsCD,YAAtC,CAA5B;EACD,KAFD;;EAGA/f,IAAAA,mBAAmB;EACnB6f,IAAAA,cAAc;EACd,WAAOC,oBAAP,CAtB2C;EAuB5C,GAvBD;;EAyBA,QAAMhB,eAAe,GAAIW,WAAD,IAAiB;EACvC,UAAMS,yBAAyB,GAAG,MAAM;EACtC,YAAM;EAAElC,QAAAA,YAAF;EAAgB5gB,QAAAA,YAAhB;EAA8BjC,QAAAA;EAA9B,UAA4CpmB,QAAQ,CAACgwB,eAA3D;EACA,aAAQ5J,SAAS,IAAI6iB,YAAY,GAAG5gB,YAAnB,CAAV,GAA8C,GAArD;EACD,KAHD;;EAIA,UAAM+iB,cAAc,GAAG,MAAM;EAC3B,YAAMC,gBAAgB,GAAGF,yBAAyB,EAAlD;;EACA,UAAIE,gBAAgB,IAAIX,WAAW,CAACzwB,OAAZ,CAAoB0vB,eAApB,CAAoCG,MAA5D,EAAoE;EAClET,QAAAA,wBAAwB,CAACqB,WAAD,CAAxB;EACAxpC,QAAAA,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCsoB,uBAArC;EACD;EACF,KAND;;EAOA,UAAMC,QAAQ,GAAG,CAAClS,IAAD,EAAOmS,KAAP,KAAiB;EAChC,UAAIC,UAAU,GAAG,KAAjB;EACA,aAAO,YAAmB;EACxB,cAAMC,OAAO,GAAG,IAAhB;;EACA,YAAI,CAACD,UAAL,EAAiB;EAAA,4CAFCE,IAED;EAFCA,YAAAA,IAED;EAAA;;EACftS,UAAAA,IAAI,CAACuS,KAAL,CAAWF,OAAX,EAAoBC,IAApB;EACAF,UAAAA,UAAU,GAAG,IAAb;EACAz8B,UAAAA,UAAU,CAAC,MAAM;EACfy8B,YAAAA,UAAU,GAAG,KAAb;EACD,WAFS,EAEPD,KAFO,CAAV;EAGD;EACF,OATD;EAUD,KAZD;;EAaA,UAAMF,uBAAuB,GAAGC,QAAQ,CAACH,cAAD,EAAiB,GAAjB,CAAxC;EACAlqC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,QAAxB,EAAkC+wB,uBAAlC,EAA2D;EAAEJ,MAAAA,OAAO,EAAE;EAAX,KAA3D;EACA,WAAO,MAAMhqC,MAAM,CAAC8hB,mBAAP,CAA2B,QAA3B,EAAqCsoB,uBAArC,CAAb,CA3BuC;EA4BxC,GA5BD;;EA8BA,MAAItB,aAAJ;;EACA,QAAMnD,cAAc,GAAG,CAAC5X,KAAD,EAAQ4c,SAAR,KAAsB;EAC3C,QAAI,CAAA5c,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAE6c,OAAP,IAAiB,CAArB,EAAwB;EACxB,UAAMnb,gBAAgB,GAAGkb,SAAS,IAAI7B,aAAtC;EAEA,UAAMj5B,UAAU,GAAG4f,gBAAgB,CAAC9W,OAAjB,CAAyBjZ,KAAzB,CAA+B,GAA/B,EAAoC,CAApC,CAAnB;EACA,UAAMgmC,MAAM,GAAGjW,gBAAgB,CAAC1W,OAAjB,CAAyB2sB,MAAxC;EACA,QAAIP,kBAAkB,CAACt1B,UAAD,CAAtB,EAAoC;;EAEpC,QAAI4f,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAA1C,KAAgD+B,MAAM,KAAK,CAAX,IAAgBA,MAAM,KAAK,CAA3B,IAAgCA,MAAM,KAAK,CAA3F,CAAJ,EAAmG;EACjGF,MAAAA,cAAc,CAAC/V,gBAAD,EAAmB,IAAnB,CAAd;EACA;EACD;;EACD,QAAI2T,kBAAkB,CAAC3T,gBAAD,CAAlB,KAAyC,KAA7C,EAAoD;EAClD;EACD;;EAED,QAAIpvB,GAAG,CAAC8C,kBAAJ,IAA0BssB,gBAAgB,CAAC1W,OAAjB,CAAyB4qB,YAAzB,KAA0C,CAAxE,EAA2E;EACzE,YAAMkH,aAAa,GAAG/rC,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;EACA,YAAM+2B,gBAAgB,GAAGhsC,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,CAAzB;;EACA,UAAI82B,aAAa,IAAIC,gBAArB,EAAuC;EACrCD,QAAAA,aAAa,CAACrsC,MAAd;EACAssC,QAAAA,gBAAgB,CAACtsC,MAAjB;EACD;EACF,KAvB0C;;;EA0B3C,QAAIM,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,KAA4C,IAA5C,IAAoDjV,QAAQ,CAACiV,cAAT,CAAwB,kBAAxB,KAA+C,IAAvG,EAA6G;EAC3G;EACD,KA5B0C;;;EA8B3C,QAAI0b,gBAAgB,CAAC1W,OAAjB,CAAyB2sB,MAAzB,IAAmC,IAAnC,KACA,UAAUtqC,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAAD,IAA0C,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAA1C,IAAiF,QAAQx/B,IAAR,CAAawiB,SAAS,CAACgd,SAAvB,CAAjF,IACE,kBAAkB56B,MADpB,IACgC,UAAU5E,IAAV,CAAewiB,SAAS,CAACgd,SAAzB,CAF/B,CAAJ,EAE0E;EACxE;EACD;;EAEDv6B,IAAAA,GAAG,CAACmC,cAAJ,CAAmBqN,UAAnB,IAAiC,eAAjC;EACA,QAAIu2B,MAAM,GAAG,KAAb;EACA,UAAML,UAAU,GAAGjnC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAnB;EACAg8B,IAAAA,UAAU,CAAC1wC,EAAX,GAAgB,kBAAhB;EACA,UAAM2wC,OAAO,GAAGvW,gBAAgB,CAAC1W,OAAjB,CAAyBitB,OAAzB,IAAoC,GAApD;EACA,UAAMC,SAAS,wBAAiBD,OAAjB,MAAf;EACAD,IAAAA,UAAU,CAACz3B,YAAX,CAAwB,OAAxB,8GAAsI23B,SAAtI;EACAnnC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0Bs3B,UAA1B;EAEA,UAAMb,MAAM,GAAGpmC,QAAQ,CAACiL,aAAT,CAAuB,KAAvB,CAAf;EACAm7B,IAAAA,MAAM,CAAC7vC,EAAP,GAAY,eAAZ;;EAEA,QAAIo6B,gBAAgB,CAAC1W,OAAjB,CAAyB0tB,KAAzB,IAAkC,IAAtC,EAA4C;EAC1CL,MAAAA,MAAM,GAAG,IAAT;EACAlB,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6B,4LAA7B;EACD,KAHD,MAGO;EACL42B,MAAAA,MAAM,CAAC52B,YAAP,CAAoB,OAApB,EAA6BmhB,gBAAgB,CAAC1W,OAAjB,CAAyB2tB,WAAtD;EACD;;EACD5nC,IAAAA,QAAQ,CAACkkB,IAAT,CAAcvU,WAAd,CAA0By2B,MAA1B;EACA,UAAMyB,MAAM,GAAG7nC,QAAQ,CAACiL,aAAT,CAAuB,QAAvB,CAAf;EACA,UAAMuwB,YAAY,GAAG7K,gBAAgB,CAAC1W,OAAjB,CAAyB6tB,EAAzB,KAAgC,KAAhC,GAAwC,GAAxC,GAA8C,GAAnE;EACAD,IAAAA,MAAM,CAACE,WAAP,GAAqB,KAArB;EACAF,IAAAA,MAAM,CAACG,YAAP,GAAsB,KAAtB;EACAH,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB;EACAJ,IAAAA,MAAM,CAACK,SAAP,GAAmB,IAAnB;EACAL,IAAAA,MAAM,CAACtxC,EAAP,GAAY,mBAAZ;EACA,UAAMo/B,OAAO,GAAGhF,gBAAgB,CAAC1W,OAAjB,CAAyB0b,OAAzC;EACA,QAAIwS,UAAU,GAAG,EAAjB;;EACA,QAAIxS,OAAO,KAAK,EAAZ,IAAkBA,OAAO,IAAI,IAAjC,EAAuC;EACrCwS,MAAAA,UAAU,GAAG,iBAAb;EACD;;EACD,QAAIxX,gBAAgB,CAAC1W,OAAjB,CAAyBqgB,OAAzB,IAAoC3J,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAxC,EAAmF;EACjF4tB,MAAAA,MAAM,CAACO,OAAP,GAAiB,2DAAjB;EACD;;EACD,QAAI7sB,IAAJ,CAtE2C;;EAwE3C,QAAIoV,gBAAgB,CAACtV,UAAjB,CAA4BnR,IAA5B,KAAqC,CAAzC,EAA4C;EAC1CqR,MAAAA,IAAI,GAAGoV,gBAAgB,CAACtV,UAAjB,CAA4BE,IAAnC;EACAA,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,iBAAb,EAAgCyT,UAAhC,CAAP;EACAwK,MAAAA,IAAI,GAAGA,IAAI,CAACje,OAAL,CAAa,yBAAb,EAAwCqzB,gBAAgB,CAAC9W,OAAzD,CAAP;EACD,KAJD,MAIO;EACL,YAAMyB,GAAG,GAAG,KACV,yBADU,GAEV,2BAFU,GAGV,wEAHU,GAGiE6sB,UAHjE,GAG8E,GAH9E,GAIV,yCAJU,GAKV,4GALU,GAMV,wJANU,GAOV,2BAPU,GAQV,gEARU,GAQyD3M,YARzD,GAQwE,sCARxE,GASV,+PATU,GAUV,0GAVU,GAWV,yGAXU,GAYV,wCAZU,GAaV,qRAbU,GAcV,UAdF;EAgBA,UAAI6M,OAAJ,EAAapkB,SAAb,EAAwBqkB,KAAxB,EAA+BE,OAA/B;;EACA,UAAI7X,gBAAgB,CAAC1W,OAAjB,CAAyBwuB,KAAzB,KAAmC,MAAvC,EAA+C;EAC7CJ,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD,OALD,MAKO;EACLH,QAAAA,OAAO,GAAG,SAAV;EACApkB,QAAAA,SAAS,GAAG,SAAZ;EACAqkB,QAAAA,KAAK,GAAG,SAAR;EACAE,QAAAA,OAAO,GAAG,SAAV;EACD;;EACD,YAAMrJ,SAAS,GAAGxO,gBAAgB,CAACtV,UAAjB,CAA4BgC,KAA9C;EACA,YAAMqrB,eAAe,GAAG/X,gBAAgB,CAACtV,UAAjB,CAA4BkC,WAApD;EACA,UAAI0uB,OAAO,GAAG,EAAd;;EACA,UAAItb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAA5B,IAAuC,IAAvC,IAA+Ctb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAA5B,KAAwC,EAA3F,EAA+F;EAC7FA,QAAAA,OAAO,GAAG,qCAAqCtb,gBAAgB,CAACtV,UAAjB,CAA4B4wB,OAAjE,GAA2E,YAArF;EACD;;EAED,UAAItD,OAAO,GAAG,EAAd;;EACA,UAAIhY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,IAAwC,IAAxC,IAAgD6T,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA5B,KAAyC,EAA7F,EAAiG;EAC/F6rB,QAAAA,OAAO,GAAG,8CAA8ChY,gBAAgB,CAACtV,UAAjB,CAA4ByB,QAA1E,GAAqF,oBAArF,GAA4GqiB,SAA5G,GAAwH,WAAlI;EACD;;EACD,YAAMyJ,UAAU,GAAG,iCAAiC73B,UAAjC,GAA8C,oBAAjE;EACA,YAAMsM,KAAK,GAAG,0CAA0C4G,SAA1C,GAAsD,oBAAtD,GAA6EokB,OAA7E,GAAuF,KAAvF,GACZ,wCADY,GAC+BO,UAD/B,GAC4C,6CAD5C,GAC4FN,KAD5F,GACoG,SADpG,GACgHE,OADhH,GAC0H,eAD1H,GAEZ,oCAFY,GAGZ,wCAHY,GAG+BvkB,SAH/B,GAG2C,IAH3C,GAGkDkb,SAHlD,GAG8D,QAH5E;EAIA,YAAMjb,IAAI,GAAG,0CAA0CD,SAA1C,GAAsD,IAAtD,GAA6DykB,eAA7D,GAA+E,QAA/E,GAA0FC,OAA1F,GAAoGsD,OAApG,GACX,cADF;EAEA1wB,MAAAA,IAAI,GAAGD,GAAG,GAAG+B,KAAN,GAAc6G,IAArB;EACD;;EACD2jB,IAAAA,MAAM,CAACr4B,YAAP,CAAoB,OAApB,EAA6B,yLAA7B;EACA42B,IAAAA,MAAM,CAACz2B,WAAP,CAAmBk4B,MAAnB,EA9H2C;;EAiI3C,UAAMgB,aAAa,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAtB;EACA9oC,IAAAA,QAAQ,CAACuzB,aAAT,CAAuBsV,aAAvB;;EAEA,QAAIlY,gBAAgB,CAAC1W,OAAjB,CAAyB,eAAzB,CAAJ,EAA+C;EAC7CsB,MAAAA,IAAI,GAAG+d,0BAA0B,CAAC3I,gBAAD,EAAmBpV,IAAnB,CAAjC;EACD;;EACDssB,IAAAA,MAAM,CAACkB,MAAP,GAAgBxtB,IAAhB;;EAEAssB,IAAAA,MAAM,CAACrX,MAAP,GAAgB,MAAM;EACpB,YAAMyJ,UAAU,GAAGj6B,QAAQ,CAACiV,cAAT,CAAwB,mBAAxB,EAA6CuxB,eAA7C,CAA6DvxB,cAA7D,CAA4E,YAA5E,CAAnB;EACAixB,MAAAA,aAAa,CAACvQ,OAAD,EAAUhF,gBAAV,EAA4BsJ,UAA5B,EAAwC,eAAxC,EAAyDqN,MAAzD,CAAb;EACD,KAHD;EAID,GA7ID;;EA+IA,MAAI,CAACtnC,QAAQ,CAACkkB,IAAd,EAAoB;EAClB,QAAImgB,WAAW,GAAG,CAAlB,EAAqB;EACnBA,MAAAA,WAAW;EACXr1B,MAAAA,UAAU,CAACm1B,GAAD,EAAM,IAAN,EAAY5nB,GAAZ,EAAiB;EACzBpW,QAAAA,MAAM,EAAEg0B,OADiB;EAEzB/zB,QAAAA,OAAO,EAAE+S,QAFgB;EAGzBjT,QAAAA,OAAO,EAAE6zB,QAHgB;EAIzBn9B,QAAAA,MAAM,EAAEwnC;EAJiB,OAAjB,CAAV;EAMD;;EACD;EACD;;EACD,QAAM8H,uBAAuB,GAAIC,cAAD,IAAoB;EAClD7wC,IAAAA,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BxlB,GAA5B,CAAgC9pB,GAAG,IAAI;EACrC,UAAIuvC,SAAJ,EAAe71C,EAAf;;EACA,UAAI41C,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAhC,EAAuC;EACrCo3B,QAAAA,SAAS,GAAGD,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4BjF,KAAxC;EACAze,QAAAA,EAAE,GAAGyJ,QAAQ,CAACiV,cAAT,CAAwBm3B,SAAxB,CAAL;EACD,OAHD,MAGO;EACLA,QAAAA,SAAS,GAAGD,cAAc,CAACtvC,GAAD,CAAd,CAAoBod,OAApB,CAA4Boe,WAAxC;EACA9hC,QAAAA,EAAE,GAAGyJ,QAAQ,CAAC+xB,aAAT,CAAuBqa,SAAvB,CAAL;EACD;;EACD,UAAI71C,EAAE,KAAK,IAAX,EAAiB;EACf41C,QAAAA,cAAc,CAACtvC,GAAD,CAAd,CAAoBwe,UAApB,CAA+BnR,IAA/B,KAAwC,CAAxC,GAA4CkuB,2BAA2B,CAAC+T,cAAc,CAACtvC,GAAD,CAAf,CAAvE,GAA+F27B,6BAA6B,CAAC2T,cAAc,CAACtvC,GAAD,CAAf,CAA5H;EACA,eAAOsvC,cAAc,CAACtvC,GAAD,CAArB;EACD;EACF,KAbD;EAcD,GAfD;;EAiBA,QAAMwvC,eAAe,GAAIF,cAAD,IAAoB;EAC1CjrC,IAAAA,MAAM,CAACqZ,gBAAP,CAAwB,MAAxB,EAAgC,MAAM;EACpC,UAAIzQ,KAAK,GAAG,CAAZ;;EACA,UAAIA,KAAK,GAAG,EAAZ,EAAgB;EACd,cAAMxC,CAAC,GAAGijB,WAAW,CAAC,MAAM;EAC1B2hB,UAAAA,uBAAuB,CAACC,cAAD,CAAvB;;EACA,cAAI7wC,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BlvC,MAA5B,KAAuC,CAAvC,IAA4C6M,KAAK,KAAK,EAA1D,EAA8D;EAC5D0gB,YAAAA,aAAa,CAACljB,CAAD,CAAb;EACA6kC,YAAAA,cAAc,GAAG,EAAjB;EACD;;EACDriC,UAAAA,KAAK;EACN,SAPoB,EAOlB,GAPkB,CAArB;EAQD;EACF,KAZD;EAaD,GAdD;;EAgBA,MAAIyS,GAAG,CAAC2c,YAAJ,IAAoB,IAAxB,EAA8B;EAC5B,UAAMiT,cAAc,GAAG,EAAvB;;EACA,SAAK,IAAI5mC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAAC2c,YAAJ,CAAiBj8B,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAMmlC,WAAW,GAAGnuB,GAAG,CAAC2c,YAAJ,CAAiB3zB,KAAjB,CAApB;;EACA,UAAImlC,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,IAAoC,IAApC,IAA4C6F,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAArF,EAAwF;EACtF0E,QAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD,OAFD,MAEO,IAAIA,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnDmF,QAAAA,aAAa,GAAGU,WAAhB;EACAxpC,QAAAA,MAAM,CAAClB,QAAP,CAAgBkkB,IAAhB,CAAqB+lB,YAArB,GAAoCpD,cAApC;EACD,OAHM,MAGA,IAAI6D,WAAW,CAACzwB,OAAZ,CAAoB4qB,YAApB,KAAqC,CAAzC,EAA4C;EAAE;EACnD,YAAI6F,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EACrCuuB,UAAAA,oBAAoB,CAACiS,WAAD,CAApB;EACD,SAFD,MAEO,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,IAAqCwgC,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAzE,EAA4E;EAAE;EACnF,gBAAMsjB,OAAO,GAAGkd,WAAW,CAACzwB,OAAZ,CAAoBjF,KAApB,GAA4BhV,QAAQ,CAACiV,cAAT,CAAwBy1B,WAAW,CAACzwB,OAAZ,CAAoBjF,KAA5C,CAA5B,GAAiFhV,QAAQ,CAAC+xB,aAAT,CAAuB2Y,WAAW,CAACzwB,OAAZ,CAAoBoe,WAA3C,CAAjG;;EACA,cAAI7K,OAAO,KAAK,IAAhB,EAAsB;EACpBkd,YAAAA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAAhC,GAAoCkuB,2BAA2B,CAACsS,WAAD,CAA/D,GAA+ElS,6BAA6B,CAACkS,WAAD,CAA5G;EACD,WAFD,MAEO;EACLyB,YAAAA,cAAc,CAACzB,WAAW,CAAC7wB,OAAZ,CAAoBjZ,KAApB,CAA0B,GAA1B,EAA+B,CAA/B,CAAD,CAAd,GAAoD8pC,WAApD,CADK;EAEN;EACF,SAPM,MAOA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CylB,UAAAA,mBAAmB,CAAC+a,WAAD,EAAc,KAAd,CAAnB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5CwuB,UAAAA,gBAAgB,CAACgS,WAAD,CAAhB;EACD,SAFM,MAEA,IAAIA,WAAW,CAACrvB,UAAZ,CAAuBnR,IAAvB,KAAgC,CAApC,EAAuC;EAC5C2uB,UAAAA,UAAU,CAAC6R,WAAD,CAAV;EACD,SAFM,MAEA;EACLnB,UAAAA,sBAAsB,CAACmB,WAAD,CAAtB;EACD;EACF;EACF,KA7B2B;;;EA+B5B,QAAIpvC,MAAM,CAACgV,IAAP,CAAY67B,cAAZ,EAA4BlvC,MAAhC,EAAwC;EACtC,UAAI+C,QAAQ,CAACkrB,UAAT,KAAwB,UAA5B,EAAwC;EACtCghB,QAAAA,uBAAuB,CAACC,cAAD,CAAvB;EACD,OAFD,MAEO;EACLE,QAAAA,eAAe,CAACF,cAAD,CAAf;EACD;EACF;EACF;;EAED,QAAMG,wBAAwB,GAAG,MAAM;EACrC,QAAI/vB,GAAG,CAAC+M,aAAR,EAAuB;EACrBD,MAAAA,kBAAkB,CAAC9M,GAAD,CAAlB;EACA;EACD;;EACD,QAAIA,GAAG,CAACgN,YAAR,EAAsB;EACpB,YAAMgjB,MAAM,GAAG,EAAf;;EACA,WAAK,IAAIhnC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGgX,GAAG,CAACgN,YAAJ,CAAiBtsB,MAA7C,EAAqDsI,KAAK,EAA1D,EAA8D;EAC5D,YAAI++B,kBAAkB,CAAC/nB,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAD,CAAlB,KAAgD,KAApD,EAA2D;EACzDgnC,UAAAA,MAAM,CAACvnC,IAAP,CAAYuX,GAAG,CAACgN,YAAJ,CAAiBhkB,KAAjB,CAAZ;EACD;EACF;;EACD8jB,MAAAA,kBAAkB,CAACkjB,MAAD,CAAlB;EACD;EACF,GAdD;;EAgBA,MAAIhwB,GAAG,CAAC4M,eAAJ,IAAuB5M,GAAG,CAACgN,YAAJ,IAAoB,IAA/C,EAAqD;EACnD;EACJ;EACA;EACA;EACA;EAEI,QAAIyD,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EACjC;;EACD,QAAIloB,GAAG,CAAC0C,KAAJ,KAAc,IAAlB,EAAwB;EACtBsY,MAAAA,GAAG,CAAC4M,eAAJ,IAAuBD,uBAAuB,CAAC3M,GAAG,CAAC4M,eAAL,CAA9C;EACAU,MAAAA,kBAAkB,CAACua,OAAD,CAAlB,CACGrZ,IADH,CACQ,MAAM;EACVuhB,QAAAA,wBAAwB;EACzB,OAHH,EAIGthB,KAJH,CAISvrB,CAAC,IAAI,EAJd;EAKD,KAPD,MAOO;EACL6sC,MAAAA,wBAAwB;EACzB;EACF;;EAED,MAAI/vB,GAAG,CAACwkB,aAAR,EAAuB;EACrBD,IAAAA,oBAAoB,CAACvkB,GAAG,CAACwkB,aAAL,EAAoBnkC,MAApB,EAA4BsJ,OAA5B,CAApB;EACD;;EAED,MAAIqW,GAAG,CAACiwB,IAAR,EAAc;EACZjrC,IAAAA,GAAG,CAACiD,aAAJ,CAAkBioC,cAAlB,CAAiClwB,GAAG,CAACiwB,IAArC;EACA;EACD;;EAED,MAAI1tC,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI;EACF,UAAIud,GAAG,CAACmwB,IAAJ,IAAY,IAAhB,EAAsB;EACpB,cAAMC,SAAS,GAAGpwB,GAAG,CAACmwB,IAAJ,CAAS7B,MAA3B;EACA,cAAM+B,UAAU,GAAGrwB,GAAG,CAACmwB,IAAJ,CAASj2B,OAA5B;EACA,cAAMo2B,UAAU,GAAGtwB,GAAG,CAACmwB,IAAJ,CAASI,UAA5B;EACA,cAAMvqB,GAAG,GAAG3kB,MAAM,EAAlB;EACAkB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,QAA3B,EAAqCmgB,GAArC;EACAzjB,QAAAA,cAAc,CAACsD,WAAf,CAA2B,MAA3B,EAAmCyqC,UAAnC;EACAnT,QAAAA,aAAa,CAACiT,SAAD,CAAb;EACA7tC,QAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;;EACA,YAAI/B,GAAG,CAAC8B,gBAAJ,IAAwB,IAA5B,EAAkC;EAChCqR,UAAAA,oBAAoB,CAACk4B,UAAD,EAAa,IAAb,CAApB;EACD,SAFD,MAEO;EACLl4B,UAAAA,oBAAoB,CAACk4B,UAAD,EAAa,KAAb,CAApB;EACD;EACF;;EACD,UAAIrwB,GAAG,CAACrH,GAAJ,IAAW,IAAf,EAAqB;EACnBA,QAAAA,GAAG,CAACqH,GAAG,CAACrH,GAAL,CAAH;EACD;;EACD,UAAIqH,GAAG,CAACwwB,WAAJ,IAAmB,IAAnB,IAA2BxwB,GAAG,CAACwwB,WAAJ,CAAgB9vC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACAs8B,QAAAA,eAAe,CAAChd,GAAG,CAACwwB,WAAL,EAAkB,IAAlB,CAAf;EACD;;EACD,UAAIxwB,GAAG,CAACywB,WAAJ,IAAmB,IAAnB,IAA2BzwB,GAAG,CAACywB,WAAJ,CAAgB/vC,MAAhB,GAAyB,CAAxD,EAA2D;EACzD;EACAs8B,QAAAA,eAAe,CAAChd,GAAG,CAACywB,WAAL,EAAkB,IAAlB,CAAf;EACD;EACF,KA3BD,CA2BE,OAAOvtC,CAAP,EAAU;EACV2kC,MAAAA,OAAO,CAACv8B,KAAR,CAAc,iCAAiCpI,CAA/C;EACD;EACF;EACF,CAv5BD;;;;EC7Be,MAAMwtC,IAAN,CAAW;EAGxB32C,EAAAA,WAAW,OAER;EAAA,QAFU;EACX+S,MAAAA;EADW,KAEV;EAAA;EAAA;EAAA;EAAA;EACD,gGAAgCA,uBAAhC;EACD;;EAED6jC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAIC,UAAU,GAAGruC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;;EACA,QAAIirC,UAAU,IAAI,IAAlB,EAAwB;EACtBA,MAAAA,UAAU,GAAG,CAAb;EACD;;EACD,WAAOA,UAAP;EACD;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,UAAMC,WAAW,GAAGvuC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAApB;;EACA,QAAImrC,WAAW,IAAI,IAAnB,EAAyB;EACvB,aAAO,IAAI1xC,IAAJ,CAAS0xC,WAAW,GAAG,IAAvB,CAAP;EACD;EACF;;EA5BuB;;ECCnB,MAAMC,SAAS,GAAG;EACvBC,EAAAA,OAAO,EAAE,CADc;EAEvBC,EAAAA,KAAK,EAAE,CAFgB;EAGvBC,EAAAA,IAAI,EAAE,CAHiB;EAIvBC,EAAAA,KAAK,EAAE,CAJgB;EAKvBC,EAAAA,QAAQ,EAAE;EALa,CAAlB;;;;;;;;EAQA,MAAMC,MAAN,CAAa;EAGlBt3C,EAAAA,WAAW,CAAEu3C,QAAF,EAAY;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SADvBC,SACuB,GADX,EACW;EACrB,8DAAiBD,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BP,SAAS,CAACG,IAAzD;EACA,SAAKK,SAAL,GAAiB,EAAjB;EACD;;EAED,MAAID,QAAJ,GAAgB;EACd,uCAAO,IAAP;EACD;;EAED,MAAIA,QAAJ,CAAcA,QAAd,EAAwB;EACtB,8DAAiBA,QAAjB;EACD;;EAEDhmC,EAAAA,KAAK,CAAEmU,OAAF,EAAW;EACd,QAAI,2DAAkBsxB,SAAS,CAACE,KAAhC,EAAuC;EACrC,oDAAU,OAAV,EAAmBxxB,OAAnB;EACD;EACF;;EAEDuhB,EAAAA,IAAI,CAAEvhB,OAAF,EAAW;EACb,QAAI,2DAAkBsxB,SAAS,CAACG,IAAhC,EAAsC;EACpC,oDAAU,KAAV,EAAiBzxB,OAAjB;EACD;EACF;;EAEDlZ,EAAAA,KAAK,CAAEkZ,OAAF,EAAW;EACd,QAAI,2DAAkBsxB,SAAS,CAACI,KAA5B,gCAAqC,IAArC,iCAAJ,EAA8D;EAC5D,oDAAU,OAAV,EAAmB1xB,OAAnB;EACD;EACF;;EAED+xB,EAAAA,OAAO,CAAE/xB,OAAF,EAAW;EAChB,QAAI,2DAAkBsxB,SAAS,CAACK,QAAhC,EAA0C;EACxC,oDAAU,UAAV,EAAsB3xB,OAAtB;EACD;EACF;;EAED7e,EAAAA,WAAW,CAAE6wC,IAAF,EAAQzwB,WAAR,EAAqB;EAC9B,SAAKuwB,SAAL,CAAehtC,CAAf,GAAmBktC,IAAnB;EACA,SAAKF,SAAL,CAAervC,CAAf,GAAmB8e,WAAnB;EACA,SAAK1V,KAAL,WAAcE,sBAAd,cAAwCimC,IAAxC,eAAiDzwB,WAAjD;EACD;;EA5CiB;;6BA8CZ0wB,OAAOjyB,SAAS;EACpB,MAAI9a,MAAM,CAAC8P,OAAX,EAAoB;EAClB,QAAI;EACF,YAAMyX,EAAE,GAAG,IAAI9sB,IAAJ,GAAWoC,OAAX,EAAX;EACAiT,MAAAA,OAAO,CAACi9B,KAAD,CAAP,sBAA6BxlB,EAA7B,gBAAqCzM,OAArC;EACD,KAHD,CAGE,OAAOvc,CAAP,EAAU;EACb;EACF;;uCAEqB;EACpB,SAAQ,OAAOklC,cAAP,KAA0B,WAA1B,IAAyCA,cAAc,CAACuJ,MAAf,KAA0B,EAA3E;EACD;;;;;;;;EC/DY,MAAMC,cAAN,CAAqB;EAIvB;EAGX73C,EAAAA,WAAW,OAGR;EAAA,QAHU;EACXsG,MAAAA,MADW;EAEXyM,MAAAA;EAFW,KAGV;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,SANHuP,UAMG;EAAA,SALH+hB,UAKG;EACD,SAAKzgB,SAAL,GAAiBpb,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAjB;EACA,8DAAetF,MAAf;EACA,gGAAgCyM,uBAAhC;EACD;;EAED,MAAI6Q,SAAJ,GAAiB;EACf,uCAAO,IAAP;EACD;;EAED,MAAIA,SAAJ,CAAeA,SAAf,EAA0B;EACxB,gEAAkBA,SAAlB;EACD;;EAEDnT,EAAAA,sBAAsB,GAAI;EACxB,QAAIqnC,UAAU,GAAGtvC,cAAc,CAAC2B,UAAf,CAA0B,KAAKmY,UAA/B,CAAjB;EACA,QAAI/c,GAAG,GAAG,EAAV;;EAEA,QAAIuyC,UAAU,IAAI,IAAlB,EAAwB;EACtB;EACAA,MAAAA,UAAU,GAAGA,UAAU,CAAC9wC,OAAX,CAAmBjG,gBAAnB,EAAqC,GAArC,CAAb;EAEAwE,MAAAA,GAAG,GAAGsD,IAAI,CAACK,KAAL,CAAW4uC,UAAX,CAAN;;EACA,UAAI,CAAC/yC,QAAQ,CAACQ,GAAD,CAAb,EAAoB;EAClBA,QAAAA,GAAG,GAAG,EAAN;EACD,OAFD,MAEO;EACL,YAAI,OAAOA,GAAG,CAACyL,CAAX,KAAiB,WAArB,EAAkC;EAAE;EAClC,gBAAMuC,QAAQ,GAAGhO,GAAG,CAACyL,CAArB;EACA,gBAAMib,GAAG,GAAG3kB,MAAM,EAAlB;;EACA,cAAK2kB,GAAG,GAAG1Y,QAAP,GAAoB/R,wBAAwB,GAAG,EAAnD,EAAwD;EACtD;EACA;EACA;EACA+D,YAAAA,GAAG,GAAG,EAAN;EACD;EACF;EACF;EACF;;EACD,SAAK8+B,UAAL,GAAkB9+B,GAAlB;EACA,WAAOA,GAAP;EACD;;EAED0L,EAAAA,sBAAsB,CAAE1L,GAAF,EAAO;EAC3B,UAAMwyC,MAAM,GAAGlvC,IAAI,CAACC,SAAL,CAAevD,GAAf,CAAf;EACAiD,IAAAA,cAAc,CAAC8C,iBAAf,CAAiC,KAAKgX,UAAtC,EAAkDy1B,MAAlD,EAA0Dv2C,wBAA1D,EAAoFuT,WAAW,EAA/F;EACD;;EAEDhE,EAAAA,aAAa,CAAEjB,OAAF,EAAW;EACtB;EACA;EACA,QAAI,OAAO,KAAK8T,SAAZ,KAA0B,WAA1B,IAAyC,KAAKA,SAAL,KAAmB9T,OAAhE,EAAyE;EACvE,YAAMkoC,kBAAkB,GAAGxvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAA3B,CADuE;;EAGvE,UAAI,OAAOosC,kBAAP,KAA8B,WAAlC,EAA+C;EAC7CxvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiC,CAAjC;EACD,OAJD,MAIO,IAAIksC,kBAAkB,KAAKloC,OAA3B,EAAoC;EACzC;EACAtH,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCksC,kBAAjC;EACAxvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCgE,OAAjC;EACA,YAAImoC,YAAY,GAAGzvC,cAAc,CAACoD,WAAf,CAA2B,IAA3B,CAAnB;;EACA,YAAI,OAAOqsC,YAAP,KAAwB,WAA5B,EAAyC;EACvCA,UAAAA,YAAY,GAAG,CAAf;EACD;;EACDzvC,QAAAA,cAAc,CAACsD,WAAf,CAA2B,IAA3B,EAAiCmsC,YAAY,GAAG,CAAhD;EACD;;EACD,WAAKr0B,SAAL,GAAiB9T,OAAjB;EACD;EACF;;EAEDooC,EAAAA,cAAc,GAAI;EAChB,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EACD,QAAI,KAAK7T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK5zB,sBAAL,EAAlB;EACD;;EACD,UAAM0nC,YAAY,GAAG,KAAK9T,UAAL,CAAgBt0B,CAArC;;EACA,QAAIooC,YAAY,IAAI,IAApB,EAA0B;EACxB,YAAMhmB,EAAE,GAAG7qB,MAAM,EAAjB;EACA,aAAOC,IAAI,CAACC,KAAL,CAAW2qB,EAAE,GAAGgmB,YAAhB,CAAP;EACD;EACF;;EAEDC,EAAAA,YAAY,GAAI;EACd,QAAI,6BAAC,IAAD,2DAAJ,EAAsC;EACpC;EACD;;EAED,QAAI,KAAK/T,UAAL,IAAmB,IAAvB,EAA6B;EAAE;EAC7B,WAAKA,UAAL,GAAkB,KAAK5zB,sBAAL,EAAlB;EACD;;EACD,WAAO,KAAK4zB,UAAL,CAAgB5kB,CAAvB;EACD;;EAxGiC;;ECGpC,IAAI44B,KAAK,GAAG,CAAZ;EACA,IAAIC,WAAW,GAAG,CAAlB;;;;;;;;;;;;;;;;EAEe,MAAMC,cAAN,CAAqB;EASlCv4C,EAAAA,WAAW,OAAiE;EAAA,QAA/D;EAAEsG,MAAAA,MAAF;EAAU2R,MAAAA,OAAV;EAAmBpI,MAAAA,MAAnB;EAA2BC,MAAAA,OAA3B;EAAoCiD,MAAAA;EAApC,KAA+D;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAH7D;EAG6D;EAAA,SAF5E7B,gBAE4E,GAFzD,KAEyD;EAC1E,8DAAe5K,MAAf;EACA,gEAAgB2R,OAAhB;EACA,8DAAepI,MAAf;EACA,gEAAgBC,OAAhB;EACA,gGAAgCiD,uBAAhC;EAEA2E,IAAAA,iBAAiB,CAACpR,MAAlB,GAA2BA,MAA3B;EACAoR,IAAAA,iBAAiB,CAAC7H,MAAlB,GAA2BA,MAA3B;EACA6H,IAAAA,iBAAiB,CAACO,OAAlB,GAA4BA,OAA5B;EACD;;EAED9G,EAAAA,mBAAmB,GAAI;EACrB,UAAMxE,SAAS,GAAGnE,cAAc,CAAC2C,kBAAf,CAAkCrJ,YAAlC,CAAlB;;EACA,QAAI,OAAO6K,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;EAC1D;EACD;;EACD,SAAKuE,gBAAL,GAAwB,IAAxB;;EACA,SAAK,MAAM3G,GAAX,IAAkBoC,SAAlB,EAA6B;EAC3B,UAAIA,SAAS,CAAClH,cAAV,CAAyB8E,GAAzB,CAAJ,EAAmC;EACjC,cAAM6B,WAAW,GAAGO,SAAS,CAACpC,GAAD,CAA7B;;EACA,YAAI,OAAO6B,WAAW,CAACosC,KAAnB,KAA6B,WAAjC,EAA8C;EAC5C,kEAAahsC,KAAb,CAAmB,+BAA+BJ,WAAW,CAACG,CAA9D;;EACA,cAAI,OAAOH,WAAW,CAACG,CAAnB,KAAyB,WAA7B,EAA0C;EACxC;EACZ;EAEY,kBAAMuD,OAAO,GAAGjH,IAAI,CAACK,KAAL,CAAWV,cAAc,CAAC2B,UAAf,CAA0B5I,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAA/D,CAAX,CAAhB;;EACA,gBAAI6P,OAAJ,aAAIA,OAAJ,uBAAIA,OAAO,CAAEC,CAAb,EAAgB;EACd3D,cAAAA,WAAW,CAACG,CAAZ,GAAgBH,WAAW,CAACG,CAAZ,GAAgB,KAAhB,GAAwBuD,OAAO,CAACC,CAAhD;EACD;;EACD2H,YAAAA,iBAAiB,CAACG,WAAlB,CAA8BzL,WAAW,CAACG,CAA1C;EACD;;EACDH,UAAAA,WAAW,CAACosC,KAAZ,GAAoB,IAApB;EACD;EACF;EACF;;EACDhwC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC/I,YAAhC,EAA8C6K,SAA9C;EACA,SAAKuE,gBAAL,GAAwB,KAAxB;EACD;;EAEDkP,EAAAA,qBAAqB,CAAExK,UAAF,EAAc6iC,UAAd,EAA0B;EAC7C;EACA,QAAI,OAAOA,UAAP,KAAsB,WAA1B,EAAuC;EACrC7iC,MAAAA,UAAU,GAAGxP,sBAAsB,CAACwP,UAAD,8BAAa,IAAb,wBAAnC;EACD;;EAED,QAAI,CAACtQ,aAAa,CAAC,wDAAakyC,SAAd,CAAlB,EAA4C;EAC1C5hC,MAAAA,UAAU,CAAC8iC,UAAX,GAAwB,wDAAalB,SAArC;EACA,8DAAaA,SAAb,GAAyB,EAAzB;EACD;;EAED5hC,IAAAA,UAAU,CAAC3V,EAAX,GAAgB,0DAAcA,EAA9B;;EAEA,QAAIgG,YAAY,CAAC,wDAAa2G,OAAd,CAAhB,EAAwC;EACtCgJ,MAAAA,UAAU,CAACoM,CAAX,GAAe,wDAAapV,OAA5B;EACD;;EAED,UAAMrH,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACAmF,IAAAA,UAAU,CAAC7F,CAAX,GAAexK,GAAG,CAACwK,CAAnB,CAlB6C;;EAmB7C6F,IAAAA,UAAU,CAAC+iC,EAAX,GAAiB,OAAOpzC,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAzD,CAnB6C;;EAoB7C,QAAI4xB,KAAK,GAAG3nC,QAAQ,CAACqB,QAAT,CAAkB4+B,QAA9B;EACA0H,IAAAA,KAAK,GAAGA,KAAK,CAACrqC,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAR;EACA4O,IAAAA,UAAU,CAACgjC,EAAX,GAAgB,EAAE,GAAGhjC,UAAU,CAACgjC,EAAhB;EAAoBC,MAAAA,GAAG,EAAE,iBAAzB;EAAyDlP,MAAAA,QAAQ,EAAE0H,KAAnE;EAA0E,SAAGpmC,GAAG,CAACgD;EAAjF,KAAhB,CAtB6C;;EAuB7C,QAAIogC,cAAc,CAAC5oC,cAAf,CAA8B,QAA9B,CAAJ,EAA6C;EAAEmQ,MAAAA,UAAU,CAACpJ,KAAX,GAAmB,IAAnB;EAAyB;;EAExE,WAAOoJ,UAAP;EACD;;EAEDyK,EAAAA,QAAQ,CAAErX,IAAF,EAAQ;EACd;EACA,oEAAoBR,cAAc,CAACwD,mBAAf,CAAmChL,KAAnC,CAApB;;EACA,QAAI,kEAAsBmF,SAAtB,gCAAmC,IAAnC,6BAAJ,EAA0D;EACxD6C,MAAAA,IAAI,CAAC8vC,EAAL,GAAU,IAAV;;EACA,8DAAatsC,KAAb,CAAmB,yEAAnB;EACD;;EACD,oCAAI,IAAJ,6DAAqC;EACnC,YAAMusC,YAAY,GAAGvwC,cAAc,CAACoD,WAAf,CAA2B,QAA3B,CAArB;EACA,YAAMotC,aAAa,GAAGxwC,cAAc,CAACoD,WAAf,CAA2B,MAA3B,CAAtB,CAFmC;;EAKnC,UAAI,OAAOmtC,YAAP,KAAwB,WAAxB,IAAuC,OAAOC,aAAP,KAAyB,WAApE,EAAiF;EAC/EhwC,QAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACA;EACD;;EACD,YAAMhtB,GAAG,GAAG3kB,MAAM,EAAlB,CATmC;;EAWnC,UAAIyxC,YAAY,GAAGC,aAAf,GAA+B/sB,GAAnC,EAAwC;EACtCjjB,QAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACD;EACF;EACF,GApGiC;;EAuGlC;EACF;EACA;EACA;EACA;EACA;;;EACE14B,EAAAA,kBAAkB,CAAEtM,GAAF,EAAOoK,QAAP,EAAiBtG,WAAjB,EAA8B5E,OAA9B,EAAuC;EACvD,UAAM8Y,GAAG,GAAG3kB,MAAM,EAAlB;EACA2M,IAAAA,GAAG,GAAGY,QAAQ,CAACZ,GAAD,EAAM,IAAN,EAAY,EAAEhJ,GAAG,CAACC,WAAJ,CAAgB2B,KAA9B,CAAd;EACA,UAAM7D,IAAI,GAAGiL,GAAG,GAAG,KAAN,GAAcgY,GAAd,GAAoB,MAApB,GAA6BosB,KAA1C;EACA7vC,IAAAA,cAAc,CAAC4D,WAAf,CAA2BpD,IAA3B,EAAiCiC,GAAG,CAACC,WAAJ,CAAgB2B,KAAjD,8BAAwD,IAAxD,yBAJuD;;EAOvD,QAAI5B,GAAG,CAAC6C,OAAR,EAAiB,OAPsC;EASvD;EACA;EACA;EACA;;EACA,QAAI,CAAC,CAACuQ,QAAD,IAAc,kEAAsBlY,SAAtB,gCAAmC,IAAnC,6BAAf,KAAyE,CAACyE,MAAM,CAAC0F,eAArF,EAAsG;EACpG,UAAI2b,GAAG,KAAKqsB,WAAZ,EAAyB;EACvBD,QAAAA,KAAK;EACN,OAFD,MAEO;EACLC,QAAAA,WAAW,GAAGrsB,GAAd;EACAosB,QAAAA,KAAK,GAAG,CAAR;EACD;;EACDztC,MAAAA,MAAM,CAAC2F,OAAP,GAAiBtF,GAAG,CAACC,WAAJ,CAAgB2B,KAAjC;EACA6K,MAAAA,iBAAiB,CAACG,WAAlB,CAA8B7O,IAA9B,EAAoC,KAApC,EAA2C+O,WAA3C,EAAwD5E,OAAxD;EACD,KATD,MASO;EACL,8DAAa3G,KAAb,uCAAkDvB,GAAG,CAACgC,YAAtD,2DAAuF,IAAvF,wEAAyIrC,MAAM,CAAC0F,eAAhJ;EACD;EACF;;EAEDQ,EAAAA,sBAAsB,CAAEooC,SAAF,EAAa;EACjC,UAAMhxB,OAAO,GAAG1f,cAAc,CAAC2C,kBAAf,CAAkC7H,sBAAlC,CAAhB,CADiC;;EAGjC,QAAI4kB,OAAJ,EAAa;EACX,YAAMlf,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,MAAZ;;EACA,UAAI3N,YAAY,CAACizC,SAAD,CAAhB,EAA6B;EAC3BlwC,QAAAA,IAAI,CAACgZ,CAAL,GAASk3B,SAAT;EACD;;EACDlwC,MAAAA,IAAI,CAAC0e,MAAL,GAAc,YAAd;EACA1e,MAAAA,IAAI,CAAC/I,EAAL,GAAU,0DAAcA,EAAxB;;EAEA,YAAMsF,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EAEAzH,MAAAA,IAAI,CAAC+G,CAAL,GAASxK,GAAG,CAACwK,CAAb,CAXW;;EAYX,YAAMuQ,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EAEA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACA5I,MAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EAA2C,IAA3C;EACA9P,MAAAA,cAAc,CAACqC,gBAAf,CAAgCxH,sBAAhC,EAAwD,KAAxD;EACD,KAtBgC;;;EAwBjC,SAAKkkC,aAAL,CAAmBrf,OAAnB;EACD;;EAEDqf,EAAAA,aAAa,CAAErf,OAAF,EAAW;EACtB,QAAI,CAACA,OAAL,EAAc,OADQ;;EAGtBA,IAAAA,OAAO,GAAG,KAAK9H,qBAAL,CAA2B8H,OAA3B,EAAoC,IAApC,CAAV;EACAA,IAAAA,OAAO,GAAGrf,IAAI,CAACC,SAAL,CAAeof,OAAf,CAAV;;EACA,QAAI5P,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAACuS,OAAD,8BAAU,IAAV,wBAA/B,CAAtB;EACAxQ,IAAAA,iBAAiB,CAACG,WAAlB,CAA8BS,WAA9B,EARsB;;EAUtB9P,IAAAA,cAAc,CAACC,IAAf,CAAoBxG,cAApB,EAAoC,IAApC;EACD;;EAED8R,EAAAA,YAAY,CAAE/K,IAAF,EAAQ;EAClB,gFAAyBA,IAAI,CAACmK,OAA9B;;EACAnK,IAAAA,IAAI,GAAG,KAAKoX,qBAAL,CAA2BpX,IAA3B,EAAiC7C,SAAjC,CAAP;EACA,SAAKka,QAAL,CAAcrX,IAAd;EACAA,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;EACA,UAAM2F,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,QAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EAEA,SAAKC,kBAAL,CAAwBjI,WAAxB,EAAqCrN,GAAG,CAACgC,YAAzC,EAAuD,KAAvD,EAA8DjE,IAAI,CAACmK,OAAnE;EACD;;EA2BDgmC,EAAAA,IAAI,CAAEllC,GAAF,EAAO2Z,IAAP,EAAa;EACf,WAAOwrB,KAAK,CAACnlC,GAAD,EAAM;EAChBolC,MAAAA,MAAM,EAAE,MADQ;EAEhBC,MAAAA,OAAO,EAAE;EAAE,wBAAgB;EAAlB,OAFO;EAGhB1rB,MAAAA,IAAI,EAAEA;EAHU,KAAN,CAAL,CAKJ6G,IALI,CAKE8kB,QAAD,IAAc;EAClB,UAAIA,QAAQ,CAACC,EAAb,EAAiB;EACf,eAAOD,QAAQ,CAAC1c,IAAT,EAAP;EACD;;EACD,YAAM0c,QAAN;EACD,KAVI,EAWJ9kB,IAXI,CAWEzrB,IAAD,IAAU;EACd,8DAAawD,KAAb,CAAmB,sBAAnB,EAA2CxD,IAA3C;;EACA,aAAOA,IAAP;EACD,KAdI,EAeJ0rB,KAfI,CAeGvrB,CAAD,IAAO;EACZ,8DAAaqD,KAAb,CAAmB,4BAAnB,EAAiDrD,CAAjD;;EACA,YAAMA,CAAN;EACD,KAlBI,CAAP;EAmBD;;EA1OiC;;2DA6LbgK,SAAS;EAC5B,MAAI3K,cAAc,CAACE,wBAAf,EAAJ,EAA+C;EAC7C,QAAI,OAAOuC,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,MAAAA,GAAG,CAAC+B,eAAJ,GAAsBxE,cAAc,CAAC2C,kBAAf,CAAkC1J,SAAlC,CAAtB;;EACA,UAAI,OAAOwJ,GAAG,CAAC+B,eAAX,KAA+B,WAAnC,EAAgD;EAC9C/B,QAAAA,GAAG,CAAC+B,eAAJ,GAAsB,EAAtB;EACD;EACF;;EAED,UAAMysC,KAAK,GAAGnyC,MAAM,EAApB;EACA,QAAIoyC,SAAS,GAAGzuC,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,CAAhB;;EACA,QAAI,OAAOumC,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,MAAAA,SAAS,CAAC,CAAD,CAAT,GAAeD,KAAf;EACAC,MAAAA,SAAS,CAAC,CAAD,CAAT;EACD,KAHD,MAGO;EACLA,MAAAA,SAAS,GAAG,EAAZ;EACAA,MAAAA,SAAS,CAAChrC,IAAV,CAAe,CAAf;EACAgrC,MAAAA,SAAS,CAAChrC,IAAV,CAAe+qC,KAAf;EACAC,MAAAA,SAAS,CAAChrC,IAAV,CAAe+qC,KAAf;EACD;;EACDxuC,IAAAA,GAAG,CAAC+B,eAAJ,CAAoBmG,OAApB,IAA+BumC,SAA/B;EACAlxC,IAAAA,cAAc,CAACqC,gBAAf,CAAgCpJ,SAAhC,EAA2CwJ,GAAG,CAAC+B,eAA/C;EACD;EACF;;;;;;;;;;;;EC5MY,MAAM2sC,OAAN,SAAsBpnC,KAAtB,CAA4B;EAMzCvS,EAAAA,WAAW,OAKX8S,MALW,EAKH;EAAA,QALK;EACXlD,MAAAA,OADW;EAEXqI,MAAAA,OAFW;EAGX3R,MAAAA;EAHW,KAKL;EACN;EADM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAEN,8DAAeA,MAAf;EACA,gEAAgBsJ,OAAhB;EACA,gEAAgBqI,OAAhB;EACA,oEAAkBnF,MAAlB;EACD,GAjBwC;;;EAoBzCpE,EAAAA,IAAI,GAAiB;EAAA,sCAAZkrC,UAAY;EAAZA,MAAAA,UAAY;EAAA;;EACnB,QAAI3uC,GAAG,CAAC2C,kBAAR,EAA4B;EAC1B,oFAA0B3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA1B,GAA8BsE,GAAG,CAAC4C,YAAlC,GAAiD+rC,UAA3E;EACD,KAFD,MAEO;EACL3uC,MAAAA,GAAG,CAAC4C,YAAJ,CAAiBa,IAAjB,CAAsB,GAAGkrC,UAAzB;EACD;;EACD,WAAO,CAAP;EACD;;EAED3mC,EAAAA,iBAAiB,GAAI;EACnB,oCAAI,IAAJ,+BAAqB;EACnB,gHAA0B,IAA1B;EACD;;EACD,oEAAkB,IAAlB;EACD;;EAlCwC;;6DAoCnB2mC,YAAY;EAChC,MAAIrnC,KAAK,CAACC,OAAN,CAAconC,UAAd,KAA6BA,UAAU,CAACjzC,MAAX,GAAoB,CAArD,EAAwD;EACtD,UAAMkzC,UAAU,GAAGD,UAAU,CAACtsB,MAAX,CAAkB,CAACsU,IAAD,EAAOkY,IAAP,MAAiB,EAAE,GAAGlY,IAAL;EAAW,SAAGkY;EAAd,KAAjB,CAAlB,EAA0D,EAA1D,CAAnB;EACA,QAAI9wC,IAAI,GAAG,EAAX;EACA,UAAM0S,UAAU,GAAG,EAAnB;EACA,QAAIq+B,MAAM,GAAG,KAAb;;EAEA,QAAIF,UAAU,CAACp0C,cAAX,CAA0BvD,UAA1B,CAAJ,EAA2C;EACzC63C,MAAAA,MAAM,GAAGF,UAAU,CAAC33C,UAAD,CAAnB;;EACA,UAAI,OAAO63C,MAAP,KAAkB,SAAtB,EAAiC;EAC/Br+B,QAAAA,UAAU,CAACvZ,aAAD,CAAV,GAA4B43C,MAA5B,CAD+B;;EAG/B9uC,QAAAA,GAAG,CAACiC,cAAJ,GAAqB,CAAC6sC,MAAtB;EACD;EACF;;EACD,QAAIF,UAAU,CAACp0C,cAAX,CAA0BpD,SAA1B,CAAJ,EAA0C;EACxC,YAAMkW,KAAK,GAAGshC,UAAU,CAACx3C,SAAD,CAAxB;EACA,YAAM23C,WAAW,GAAI,OAAOzhC,KAAP,KAAiB,SAAlB,GAA+BA,KAA/B,GAAuC,KAA3D;EACA/P,MAAAA,cAAc,CAACsD,WAAf,CAA2BzJ,SAA3B,EAAsC23C,WAAtC;EACD;;EACD,QAAI,CAAC10C,aAAa,CAACoW,UAAD,CAAlB,EAAgC;EAC9B1S,MAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;EACA5K,MAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;EACA1S,MAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA,YAAMma,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,UAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;EACAhI,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAcpW,UAAd,EAA0B63C,MAAM,GAAG,MAAH,GAAY,OAA5C,CAAtB;;EACA,gEAAcx5B,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EACA2sC,MAAAA,UAAU,CAAClqC,MAAX,CAAkB,CAAlB,EAAqBkqC,UAAU,CAACjzC,MAAhC;EACD;EACF;EACF;;;;ECzFI,MAAMszC,QAAN,CAAe;EAGpB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACEj6C,EAAAA,WAAW,OAAqB;EAAA,QAAnB;EAAEkO,MAAAA;EAAF,KAAmB;EAAA;EAAA;EAAA;EAAA;EAC9B,SAAK3E,IAAL,GAAY,IAAZ;EACA,SAAK2wC,YAAL,GAAoB,IAApB;EACA,SAAKh0C,KAAL,GAAa,IAAb;EACA,SAAK0N,IAAL,GAAY,IAAZ;EACA,SAAKumC,UAAL,GAAkB,KAAlB;EACA,SAAKC,qBAAL,GAA6B,EAA7B;EACA,wEAAsBlsC,aAAtB;EACD;;EAEDmsC,EAAAA,QAAQ,GAAI;EACV,WAAO,KAAKn0C,KAAZ;EACD;;EAEDo0C,EAAAA,eAAe,GAAI;EACjB,WAAO,KAAKJ,YAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;EACE,SAAOplB,MAAP,CAAevrB,IAAf,EAAqB2wC,YAArB,EAAmChsC,aAAnC,EAAkD;EAChD,QAAI,CAAC3E,IAAD,IAAS,OAAOA,IAAP,KAAgB,QAA7B,EAAuC;EACrCmR,MAAAA,OAAO,CAACnJ,KAAR,CAAc,2CAAd;EACA,aAAO,IAAP;EACD;;EACD,QAAIhI,IAAI,CAAC2hB,UAAL,CAAgB,GAAhB,KAAwB3hB,IAAI,CAACy3B,QAAL,CAAc,GAAd,CAA5B,EAAgD;EAC9CtmB,MAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAmEhI,IAAjF;EACA,aAAO,IAAP;EACD;;EAED,UAAMgxC,kBAAkB,GAAG,OAAOL,YAAlC;;EACA,QAAIK,kBAAkB,KAAK,QAAvB,IAAmCA,kBAAkB,KAAK,QAA1D,IAAsEA,kBAAkB,KAAK,SAAjG,EAA4G;EAC1G7/B,MAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACA,aAAO,IAAP;EACD;;EAED,UAAMipC,QAAQ,GAAGtsC,aAAa,CAACusC,WAAd,CAA0BlxC,IAA1B,CAAjB;;EACA,QAAIixC,QAAJ,EAAc;EACZ,aAAOA,QAAP;EACD;;EAED,UAAME,WAAW,GAAG,IAAIT,QAAJ,CAAa;EAAE/rC,MAAAA;EAAF,KAAb,CAApB;;EACA,QAAI;EACFwsC,MAAAA,WAAW,CAACnxC,IAAZ,GAAmBA,IAAnB;EACAmxC,MAAAA,WAAW,CAACR,YAAZ,GAA2BA,YAA3B;EACAQ,MAAAA,WAAW,CAACx0C,KAAZ,GAAoBg0C,YAApB;EACAQ,MAAAA,WAAW,CAAC9mC,IAAZ,GAAmB2mC,kBAAnB;EACArsC,MAAAA,aAAa,CAACysC,gBAAd,CAA+BD,WAA/B;EACAA,MAAAA,WAAW,CAACE,MAAZ,CAAmBV,YAAnB;EACD,KAPD,CAOE,OAAO3oC,KAAP,EAAc;EACdmJ,MAAAA,OAAO,CAACnJ,KAAR,CAAcA,KAAd;EACD;;EACD,WAAOmpC,WAAP;EACD;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,MAAM,CAAEC,QAAF,EAAY;EAChB,UAAMC,QAAQ,GAAG,KAAK50C,KAAtB;EACA,SAAKA,KAAL,GAAa20C,QAAb;;EACA,QAAIA,QAAQ,KAAK,IAAb,IAAqBC,QAAQ,KAAK,IAAtC,EAA4C;EAC1C;EACD;;EACD,QAAID,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAKC,QAAlC,IAA8C,KAAKX,UAAvD,EAAmE;EACjE;EACD;;EACD,QAAI,kEAAoBY,uBAApB,EAAJ,EAAmD;EACjD,WAAKZ,UAAL,GAAkB,IAAlB;EACA,WAAKa,mBAAL;EACD;EACF;EAED;EACF;EACA;;;EACEA,EAAAA,mBAAmB,GAAI;EACrB,SAAKZ,qBAAL,CAA2BngC,OAA3B,CAAoCghC,cAAD,IAAoB;EACrDA,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD,KAFD;EAGD;EAED;EACF;EACA;EACA;;;EACEC,EAAAA,uBAAuB,CAAED,cAAF,EAAkB;EACvC,QAAI,CAACA,cAAL,EAAqB;EACnBvgC,MAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;EACD;;EACD,SAAKwxB,qBAAL,CAA2B1rC,IAA3B,CAAgCusC,cAAhC;;EAEA,QAAI,kEAAoBF,uBAApB,EAAJ,EAAmD;EACjDE,MAAAA,cAAc,CAAC,IAAD,CAAd;EACD;EACF;EAED;EACF;EACA;EACA;;;EACEE,EAAAA,0BAA0B,CAAEF,cAAF,EAAkB;EAC1C,UAAMhsC,KAAK,GAAG,KAAKmrC,qBAAL,CAA2B1vC,OAA3B,CAAmCuwC,cAAnC,CAAd;;EACA,QAAIhsC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,WAAKmrC,qBAAL,CAA2B1qC,MAA3B,CAAkCT,KAAlC,EAAyC,CAAzC;EACD;EACF;EAED;EACF;EACA;;;EACEmsC,EAAAA,cAAc,GAAI;EAChB,SAAKjB,UAAL,GAAkB,KAAlB;EACD;;EAxImB;;;;;;;;;;;;;;;;;;;;;;;;ECEtB,MAAMkB,aAAN,CAAoB;EAalBr7C,EAAAA,WAAW,OAAuC;EAAA,QAArC;EAAEsG,MAAAA,MAAF;EAAUsJ,MAAAA,OAAV;EAAmBqI,MAAAA,OAAnB;EAA4B0gB,MAAAA;EAA5B,KAAqC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAFvB;EAEuB;EAChD,8DAAeryB,MAAf;EACA,gEAAgB2R,OAAhB;EACA,gEAAgBrI,OAAhB;EACA,wDAAc+oB,KAAd;EAEA,gEAAkB,EAAlB;EACA,4EAAwB,EAAxB;EACA,gGAAkC,EAAlC;EACA,8GAAyC,EAAzC;EAEA1tB,IAAAA,GAAG,CAACiD,aAAJ,GAAoB,IAApB;EACD;EAED;EACF;EACA;EACA;;;EACEysC,EAAAA,gBAAgB,CAAED,WAAF,EAAe;EAC7B,UAAM;EAAEnxC,MAAAA;EAAF,QAAWmxC,WAAjB;EACA,8DAAgBnxC,IAAhB,IAAwBmxC,WAAxB;EACAhgC,IAAAA,OAAO,CAACkO,GAAR,CAAY,kBAAZ,8BAAgC,IAAhC;EACD;EAED;EACF;EACA;EACA;EACA;;;EACE6xB,EAAAA,WAAW,CAAElxC,IAAF,EAAQ;EACjB,WAAO,0DAAgBA,IAAhB,CAAP;EACD;;EAEDwxC,EAAAA,uBAAuB,GAAI;EACzB,uCAAO,IAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;EACEO,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,CAAC,0DAAcp7C,KAAnB,EAA0B;EACxB,YAAMgI,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,UAAM8f,OAAO,GAAG;EACdtU,MAAAA,IAAI,EAAE,aADQ;EAEdsiC,MAAAA,IAAI,EAAE;EAFQ,KAAhB;;EAKA,SAAK,MAAM3sC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC2e,MAAAA,OAAO,CAACguB,IAAR,CAAa3sC,IAAb,IAAqB;EACnB2wC,QAAAA,YAAY,EAAE,0DAAgB3wC,IAAhB,EAAsB2wC,YADjB;EAEnBtmC,QAAAA,IAAI,EAAE,0DAAgBrK,IAAhB,EAAsBqK;EAFT,OAArB;EAID,KAjB0C;;;EAoB3C,QAAI5O,MAAM,CAACgV,IAAP,CAAYkO,OAAO,CAACguB,IAApB,EAA0BvvC,MAA1B,KAAqC,CAAzC,EAA4C;EAC1C,YAAMyB,CAAC,GAAG,2BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;;EAED,QAAIqzC,IAAI,GAAG,EAAX;EACAA,IAAAA,IAAI,GAAG,0DAAcr7B,qBAAd,CAAoCq7B,IAApC,EAA0Ct1C,SAA1C,CAAP;EACAs1C,IAAAA,IAAI,CAACC,EAAL,GAAU,0DAAct7C,KAAxB;EAEAq7C,IAAAA,IAAI,CAAC7nC,IAAL,GAAY,MAAZ;EACA,UAAMga,IAAI,GAAG/kB,IAAI,CAACC,SAAL,CAAe,CAAC2yC,IAAD,EAAOvzB,OAAP,CAAf,CAAb;;EACA,UAAMjU,GAAG,GAAG,0DAAczT,aAA1B;;EAEA,WAAO,0DAAc24C,IAAd,CAAmBllC,GAAnB,EAAwB2Z,IAAxB,EACJ6G,IADI,CACEknB,CAAD,IAAO;EACX,UAAIJ,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACI,CAAD,CAAb;EACD;;EACD,aAAOA,CAAP;EACD,KANI,EAOJjnB,KAPI,CAOGvrB,CAAD,IAAO;EACZ,UAAIqyC,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;EACxDA,QAAAA,aAAa,CAACryC,CAAD,CAAb;EACD;;EACD,UAAIA,CAAC,CAACyyC,MAAF,KAAa,GAAjB,EAAsB;EACpB,gEAAarqC,KAAb,CAAmB,kDAAnB;EACD,OAFD,MAEO,IAAIpI,CAAC,CAACyyC,MAAF,KAAa,GAAjB,EAAsB;EAC3B,gEAAarqC,KAAb,CAAmB,4BAAnB;EACD,OAFM,MAEA;EACL,gEAAaA,KAAb,CAAmB,sBAAnB;EACD;;EACD,YAAMpI,CAAN;EACD,KAnBI,CAAP;EAoBD;EAED;EACF;EACA;EACA;;;EACE0yC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,sDAAYptC,IAAZ,CAAiBvK,UAAjB,EAA6B;EAAE6M,MAAAA,CAAC,EAAE;EAAL,KAA7B;;EACA,QAAI8qC,eAAe,IAAI,OAAOA,eAAP,KAA2B,UAAlD,EAA8D;EAC5D,0EAAsBA,eAAtB;EACD;EACF;;EAED3F,EAAAA,cAAc,CAAED,IAAF,EAAQ;EACpBx7B,IAAAA,OAAO,CAACkO,GAAR,CAAY,cAAZ,EAA4BstB,IAA5B;EACA,4FAAgC,IAAhC;EAEA1tC,IAAAA,cAAc,CAACqC,gBAAf,CAAgC7G,SAAhC,EAA2CkyC,IAA3C;EACA,4EAAwBA,IAAxB;;EAEA,SAAK,MAAM3sC,IAAX,gCAAmB,IAAnB,2BAAoC;EAClC,UAAI2sC,IAAI,CAACzwC,cAAL,CAAoB8D,IAApB,CAAJ,EAA+B;EAC7B,kEAAgBA,IAAhB,EAAsBqxC,MAAtB,CAA6B1E,IAAI,CAAC3sC,IAAD,CAAjC;EACD;EACF;;EAED,oCAAI,IAAJ,mCAAyB;EACvB;EACD;;EAED;EACD;;EAEDwyC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,gGAAgCttC,IAAhC,CAAqCstC,QAArC;;EAEA,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT;EACF,KAND,MAMO;EACL,8DAAazqC,KAAb,CAAmB,4BAAnB;EACD;EACF;;EAED0qC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,QAAIA,QAAQ,IAAI,OAAOA,QAAP,KAAoB,UAApC,EAAgD;EAC9C,UAAI,KAAKjB,uBAAL,EAAJ,EAAoC;EAClCiB,QAAAA,QAAQ;EACT,OAFD,MAEO;EACL,gHAAuCttC,IAAvC,CAA4CstC,QAA5C;EACD;EACF;EACF;;EAEDE,EAAAA,8BAA8B,CAAEF,QAAF,EAAY;EACxC,UAAM/sC,KAAK,GAAG,0FAAgCvE,OAAhC,CAAwCsxC,QAAxC,CAAd;;EACA,QAAI/sC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,gGAAgCS,MAAhC,CAAuCT,KAAvC,EAA8C,CAA9C;EACD;EACF;;EAEDktC,EAAAA,qCAAqC,CAAEH,QAAF,EAAY;EAC/C,UAAM/sC,KAAK,GAAG,wGAAuCvE,OAAvC,CAA+CsxC,QAA/C,CAAd;;EACA,QAAI/sC,KAAK,KAAK,CAAC,CAAf,EAAkB;EAChB,8GAAuCS,MAAvC,CAA8CT,KAA9C,EAAqD,CAArD;EACD;EACF;;EAlLiB;;+EAoLc;EAC9B,OAAK,IAAI+sC,QAAT,gCAAqB,IAArB,2DAAsD;EACpDA,IAAAA,QAAQ;EACT;;EACD,OAAK,IAAII,QAAT,gCAAqB,IAArB,yEAA6D;EAC3DA,IAAAA,QAAQ;EACT;;EACD,0GAAuCz1C,MAAvC,GAAgD,CAAhD;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC7IY,MAAM01C,SAAN,CAAgB;EAgB7B,MAAIC,GAAJ,GAAW;EACT,uCAAO,IAAP;EACD;;EAED,MAAIA,GAAJ,CAASp2C,KAAT,EAAgB;EACd,UAAMq2C,KAAK,GAAGr2C,KAAK,KAAK,IAAxB;;EACA,QAAI,sDAAgBq2C,KAAhB,IAAyB,oEAAuB,CAApD,EAAuD;EACrD;EACA,UAAIA,KAAJ,EAAW;EACT7yC,QAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EACD,OAFD,MAEO;EACLva,QAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;EACF;;EACD,wDAAc6vB,KAAd;EACD;;EAED,MAAIxuC,kBAAJ,GAA0B;EACxB,uCAAO,IAAP;EACD;;EAED,MAAIA,kBAAJ,CAAwB7H,KAAxB,EAA+B;EAC7B,UAAM6H,kBAAkB,GAAG7H,KAAK,KAAK,IAArC;EACA,kFAA2B6H,kBAA3B;EACA9C,IAAAA,GAAG,CAAC8C,kBAAJ,GAAyBA,kBAAzB;EACD;;EAED/N,EAAAA,WAAW,GAAkB;EAAA;;EAAA,QAAhB2Y,SAAgB,uEAAJ,EAAI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aAhCJ,wEAAuB6jC,IAAvB,CAA4B,IAA5B;EAgCI;EAAA;EAAA;EAAA;EAAA;EAAA,SA9B7BC,qBA8B6B;EAAA;EAAA;EAAA;EAAA;EAAA,SAswB7B5I,cAtwB6B,GAswBZ,EAtwBY;EAAA,SAuwB7BT,kBAvwB6B,GAuwBR,EAvwBQ;EAC3B,sEAAqB,CAArB;EACA,SAAKsJ,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BF,IAA9B,CAAmC,IAAnC,CAAhC;;EACA,SAAK7kB,wBAAL,GAAgC,MAAM,EAAtC;;EACA,8DAAe,IAAI2f,MAAJ,CAAWN,SAAS,CAACG,IAArB,CAAf;EACA,gEAAgB,IAAIp3C,OAAJ,uBAAY4Y,SAAS,CAACV,OAAtB,uDAAY,mBAAoB,CAApB,CAAZ,EAAoCU,SAAS,CAACzY,MAAV,4BAAoByY,SAAS,CAACV,OAA9B,wDAAoB,oBAAoB,CAApB,CAApB,CAApC,EAAgFU,SAAS,CAACxY,YAAV,4BAA0BwY,SAAS,CAACV,OAApC,wDAA0B,oBAAoB,CAApB,CAA1B,CAAhF,EAAkIU,SAAS,CAACvY,KAAV,4BAAmBuY,SAAS,CAACV,OAA7B,wDAAmB,oBAAoB,CAApB,CAAnB,CAAlI,CAAhB;EACA,8DAAe,IAAI7G,aAAJ,CAAkB;EAAE9K,MAAAA,MAAM,8BAAE,IAAF;EAAR,KAAlB,CAAf;EACA,kFAA2BqS,SAAS,CAAC5K,kBAAV,IAAgC,KAA3D;EACA,SAAK4uC,cAAL,GAAsBhkC,SAAS,CAACgkC,cAAV,IAA4B,EAAlD;EACA,gEAAgB,IAAI9E,cAAJ,CAAmB;EACjCvxC,MAAAA,MAAM,8BAAE,IAAF,uBAD2B;EAEjCyM,MAAAA,uBAAuB,EAAE,KAAK2pC;EAFG,KAAnB,CAAhB;EAIA,gEAAgB,IAAIE,cAAJ,CAAkB;EAChCt2C,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhC2R,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCpI,MAAAA,MAAM,8BAAE,IAAF,uBAH0B;EAIhCC,MAAAA,OAAO,8BAAE,IAAF,yBAJyB;EAKhCiD,MAAAA,uBAAuB,EAAE,KAAK2pC;EALE,KAAlB,CAAhB;EAOA,SAAKD,qBAAL,GAA6B9jC,SAAS,CAAC8jC,qBAAV,IAAmC,KAAhE;EACA,SAAK9jB,KAAL,GAAa,IAAI9lB,YAAJ,CAAiB;EAC5BvM,MAAAA,MAAM,8BAAE,IAAF,uBADsB;EAE5BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFqB;EAG5BmD,MAAAA,uBAAuB,EAAE,KAAK2pC;EAHF,KAAjB,EAIV/jC,SAAS,CAACggB,KAJA,CAAb;EAMA,SAAKxY,OAAL,GAAe,IAAIP,cAAJ,CAAmB;EAChCtZ,MAAAA,MAAM,8BAAE,IAAF,uBAD0B;EAEhCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFyB;EAGhCqI,MAAAA,OAAO,8BAAE,IAAF,yBAHyB;EAIhClF,MAAAA,uBAAuB,EAAE,KAAK2pC;EAJE,KAAnB,EAKZ/jC,SAAS,CAACwH,OALE,CAAf;EAOA,SAAK08B,WAAL,GAAmB,IAAIj7B,gBAAJ,CAAqB;EACtChS,MAAAA,OAAO,8BAAE,IAAF,yBAD+B;EAEtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCnI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItCxJ,MAAAA,MAAM,8BAAE,IAAF,uBAJgC;EAKtCuJ,MAAAA,MAAM,8BAAE,IAAF;EALgC,KAArB,EAMhB8I,SAAS,CAACkkC,WANM,CAAnB;EAQA,SAAKC,OAAL,GAAe,IAAInD,OAAJ,CAAY;EACzB/pC,MAAAA,OAAO,8BAAE,IAAF,yBADkB;EAEzBqI,MAAAA,OAAO,8BAAE,IAAF,yBAFkB;EAGzB3R,MAAAA,MAAM,8BAAE,IAAF;EAHmB,KAAZ,EAIZqS,SAAS,CAACmkC,OAJE,CAAf;EAMA,SAAK3Y,aAAL,GAAqB,IAAIwB,mBAAJ,CAAwB;EAC3Cr/B,MAAAA,MAAM,8BAAE,IAAF,uBADqC;EAE3CsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoC;EAG3CqI,MAAAA,OAAO,8BAAE,IAAF;EAHoC,KAAxB,EAIlBU,SAAS,CAACwrB,aAJQ,CAArB;EAMA,4EAAsB,IAAIkX,aAAJ,CAAkB;EACtC/0C,MAAAA,MAAM,8BAAE,IAAF,uBADgC;EAEtCsJ,MAAAA,OAAO,8BAAE,IAAF,yBAF+B;EAGtCqI,MAAAA,OAAO,8BAAE,IAAF,yBAH+B;EAItC0gB,MAAAA,KAAK,EAAE,KAAKA;EAJ0B,KAAlB,CAAtB;EAOA,oDAAY,IAAIhpB,YAAJ,CAAiB;EAC3BrJ,MAAAA,MAAM,8BAAE,IAAF,uBADqB;EAE3BsJ,MAAAA,OAAO,8BAAE,IAAF,yBAFoB;EAG3BC,MAAAA,MAAM,8BAAE,IAAF,uBAHqB;EAI3BC,MAAAA,OAAO,8BAAE,IAAF;EAJoB,KAAjB,CAAZ;EAOA,SAAKwsC,GAAL,GAAW3jC,SAAS,CAAC2jC,GAArB;EACA,SAAKvuC,kBAAL,GAA0B4K,SAAS,CAAC5K,kBAApC;EAEA,SAAKkO,IAAL,GAAY,IAAI06B,IAAJ,CAAS;EACnB5jC,MAAAA,uBAAuB,EAAE,KAAK2pC;EADX,KAAT,CAAZ;EAIA,SAAK5sC,OAAL,GAAe;EACbooC,MAAAA,cAAc,EAAE,MAAM;EACpB,eAAO,0DAAcA,cAAd,EAAP;EACD,OAHY;EAIbE,MAAAA,YAAY,EAAE,MAAM;EAClB,eAAO,0DAAcA,YAAd,EAAP;EACD;EANY,KAAf;;EASA,SAAK2E,MAAL,GAAc,MAAM;EAClB,8DAAavwC,KAAb,CAAmB,eAAnB;;EACAhE,MAAAA,cAAc,CAACyD,uBAAf;EACD,KAHD;;EAKA,SAAK4V,KAAL,GAAa,MAAM;EACjB,WAAKg7B,WAAL,CAAiBh7B,KAAjB;EACD,KAFD;;EAIA,SAAKm7B,cAAL,GAAsB,MAAM;EAC1B,aAAO,wDAAa3rC,OAAb,EAAP;EACD,KAFD;;EAIA,SAAK4rC,YAAL,GAAoB,MAAM;EACxB,aAAO,0DAAch9C,EAArB;EACD,KAFD;;EAIA,SAAKi9C,WAAL,GAAmB,MAAM;EACvB,aAAO,0DAAc38C,iBAArB;EACD,KAFD;;EAIA,SAAK48C,UAAL,GAAkB,CAACC,OAAD,EAAUC,UAAV,KAAyB;EACzCpyC,MAAAA,GAAG,CAACgD,cAAJ,GAAqB;EAAE,SAACmvC,OAAD,GAAWC;EAAb,OAArB;EACD,KAFD,CAzG2B;;;EA8G3B,SAAKC,eAAL,GAAwBC,GAAD,IAAS;EAC9B,gEAAcC,YAAd,GAA6BD,GAA7B;EACA,YAAMv0C,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4vC,EAAL,GAAU;EAAE6E,QAAAA,GAAG,EAAE,aAAa,0DAAcD;EAAlC,OAAV;;EACA,UAAIllC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,MAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EACA,gEAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD,KARD;;EAUA,QAAIypB,uBAAuB,EAA3B,EAA+B;EAC7BvD,MAAAA,gCAAgC;EAChCI,MAAAA,kBAAkB,6BAAC,IAAD,wBAAlB;EACD,KA3H0B;;;EA8H3B,SAAKmqB,oBAAL,GAA4B,MAAM;EAChC,YAAMhyB,QAAQ,GAAGwB,gBAAgB,EAAjC;EACA,aAAOloB,MAAM,CAACgV,IAAP,CAAY0R,QAAZ,EAAsB/kB,MAA7B;EACD,KAHD,CA9H2B;;;EAoI3B,SAAKg3C,0BAAL,GAAkC,MAAM;EACtC,UAAI;EACF,cAAMC,cAAc,GAAG,KAAKC,sBAAL,EAAvB;EACA,cAAMC,MAAM,GAAG94C,MAAM,CAACgV,IAAP,CAAY4jC,cAAZ,EAA4Bj3C,MAA3C;EACA,eAAOm3C,MAAP;EACD,OAJD,CAIE,OAAO30C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,wCAAwCpI,CAA3D;EACD;EACF,KARD,CApI2B;;;EA+I3B,SAAK40C,mBAAL,GAA2B,MAAM;EAC/B,aAAO7wB,gBAAgB,EAAvB;EACD,KAFD,CA/I2B;;;EAoJ3B,SAAK2wB,sBAAL,GAA8B,MAAM;EAClC,UAAI;EACF,cAAM/wB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,cAAM4wB,MAAM,GAAG,EAAf;;EAEA,YAAI94C,MAAM,CAACgV,IAAP,CAAY8S,QAAZ,EAAsBnmB,MAAtB,GAA+B,CAAnC,EAAsC;EACpC,eAAK,MAAM+e,OAAX,IAAsBoH,QAAtB,EAAgC;EAC9B,gBAAIA,QAAQ,CAACpH,OAAD,CAAR,CAAkBY,MAAlB,KAA6B,CAAjC,EAAoC;EAClCw3B,cAAAA,MAAM,CAACp4B,OAAD,CAAN,GAAkBoH,QAAQ,CAACpH,OAAD,CAA1B;EACD;EACF;EACF;;EACD,eAAOo4B,MAAP;EACD,OAZD,CAYE,OAAO30C,CAAP,EAAU;EACV,gEAAaoI,KAAb,CAAmB,oCAAoCpI,CAAvD;EACD;EACF,KAhBD,CApJ2B;;;EAuK3B,SAAK60C,oBAAL,GAA6BC,SAAD,IAAe;EACzC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,eAAOnxB,QAAQ,CAACmxB,SAAD,CAAf;EACD,OAFD,MAEO;EACL,gEAAa1sC,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KAPD,CAvK2B;EAiL3B;EACA;;;EACA,SAAKC,kBAAL,GAA2BD,SAAD,IAAe;EACvC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,YAAInxB,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,KAA+B,CAAnC,EAAsC;EACpCrb,UAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,iBAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2B2zB,SAA3B,CAAP;EACA,gBAAME,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,cAAIw/B,aAAJ,EAAmB;EACjBA,YAAAA,aAAa,CAACn3B,SAAd,GAA0B/b,GAAG,CAAC0C,KAAJ,CAAU4c,eAApC;EACA4zB,YAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B1Y,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B,GAAgC,MAAhC,GAAyC,MAAvE;EACD;EACF;;EACD,cAAM6zB,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI2iB,OAAJ,EAAa;EACX,gBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCs/B,SAAlC,CAAX;EACA7wB,UAAAA,EAAE,IAAIA,EAAE,CAAChkB,MAAH,EAAN;EACD;;EACD,eAAO0jB,QAAQ,CAACmxB,SAAD,CAAf;EACAzwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAjBD,MAiBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KAtBD;EAwBA;EACJ;EACA;EACA;;;EACI,SAAKI,oBAAL,GAA6BJ,SAAD,IAAe;EACzC,YAAMnxB,QAAQ,GAAGI,gBAAgB,EAAjC;;EACA,UAAI,CAAC+wB,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,EAArC,KAA4CnxB,QAAQ,CAACrnB,cAAT,CAAwBw4C,SAAxB,CAAhD,EAAoF;EAClF,YAAInxB,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,KAA+B,CAAnC,EAAsC;EACpC,iBAAO,wDAAa/U,KAAb,CAAmB,2BAA2B0sC,SAA9C,CAAP;EACD;;EACD,cAAMG,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,YAAI2iB,OAAJ,EAAa;EACX,gBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCs/B,SAAlC,CAAX;;EACA,cAAI7wB,EAAE,KAAK,IAAX,EAAiB;EACfA,YAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,QAAAA,QAAQ,CAACmxB,SAAD,CAAR,CAAoB33B,MAApB,GAA6B,CAA7B;EACA,cAAM63B,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIw/B,aAAJ,EAAmB;EACjB,cAAIpuB,OAAO,GAAG2M,QAAQ,CAACyhB,aAAa,CAACn3B,SAAf,CAAR,GAAoC,CAAlD;EACAm3B,UAAAA,aAAa,CAACn3B,SAAd,GAA0B+I,OAA1B;EACAouB,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8BoM,OAAO,GAAG,CAAV,GAAc,MAAd,GAAuB,MAArD;EACD;;EACDnlB,QAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,UAAAA,KAAK,EAAEwJ,QAAQ,CAACmxB,SAAD,CAAR,CAAoB16B,OAA7B;EAAsCC,UAAAA,OAAO,EAAEsJ,QAAQ,CAACmxB,SAAD,CAAR,CAAoBz6B;EAAnE,SAA1C;EACAvY,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV;EACA,eAAOtf,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,CAA2B2zB,SAA3B,CAAP;EACAzwB,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACD,OAtBD,MAsBO;EACL,gEAAavb,KAAb,CAAmB,yCAAyC0sC,SAA5D;EACD;EACF,KA3BD;EA6BA;;;EACA,SAAKK,2BAAL,GAAoCC,UAAD,IAAgB;EACjD,UAAIhsC,KAAK,CAACC,OAAN,CAAc+rC,UAAd,CAAJ,EAA+B;EAC7B,aAAK,IAAIt+C,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGs+C,UAAU,CAAC53C,MAAjC,EAAyC1G,EAAE,EAA3C,EAA+C;EAC7C,eAAKo+C,oBAAL,CAA0BE,UAAU,CAACt+C,EAAD,CAApC;EACD;EACF;EACF,KAND;EAQA;EACJ;EACA;EACA;;;EACI,SAAKu+C,uBAAL,GAA+B,MAAM;EACnC,YAAM1xB,QAAQ,GAAGI,gBAAgB,EAAjC;EACA,YAAMuxB,SAAS,GAAG,KAAKZ,sBAAL,EAAlB;;EACA,UAAI74C,MAAM,CAACgV,IAAP,CAAYykC,SAAZ,EAAuB93C,MAAvB,GAAgC,CAApC,EAAuC;EACrC,cAAMqmB,MAAM,GAAGhoB,MAAM,CAACgV,IAAP,CAAYykC,SAAZ,CAAf;EACAzxB,QAAAA,MAAM,CAAC/S,OAAP,CAAe1T,GAAG,IAAI;EACpB,gBAAM63C,OAAO,GAAG10C,QAAQ,CAAC+xB,aAAT,CAAuB,cAAvB,CAAhB;;EACA,cAAI2iB,OAAJ,EAAa;EACX,kBAAMhxB,EAAE,GAAGgxB,OAAO,CAACr6B,UAAR,CAAmBpF,cAAnB,CAAkCpY,GAAlC,CAAX;;EACA,gBAAI6mB,EAAE,KAAK,IAAX,EAAiB;EACfA,cAAAA,EAAE,CAACrJ,UAAH,CAAcpF,cAAd,CAA6B,cAA7B,EAA6C4F,KAA7C,CAAmDZ,OAAnD,GAA6D,MAA7D;EACD;EACF;;EACDmJ,UAAAA,QAAQ,CAACvmB,GAAD,CAAR,CAAc+f,MAAd,GAAuB,CAAvB;EACA1b,UAAAA,MAAM,CAAC+N,SAAP,CAAiB6L,wBAAjB,CAA0C;EAAElB,YAAAA,KAAK,EAAEwJ,QAAQ,CAACvmB,GAAD,CAAR,CAAcgd,OAAvB;EAAgCC,YAAAA,OAAO,EAAEsJ,QAAQ,CAACvmB,GAAD,CAAR,CAAckd;EAAvD,WAA1C;EACD,SAVD;EAWA,cAAM06B,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,YAAIw/B,aAAJ,EAAmB;EACjBA,UAAAA,aAAa,CAACn3B,SAAd,GAA0B,CAA1B;EACAm3B,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACD6J,QAAAA,iBAAiB,CAACV,QAAD,CAAjB;EACA7hB,QAAAA,GAAG,CAAC0C,KAAJ,CAAU4c,eAAV,GAA4B,CAA5B;EACAtf,QAAAA,GAAG,CAAC0C,KAAJ,CAAU2c,gBAAV,GAA6B,EAA7B;EACD,OArBD,MAqBO;EACL,gEAAa9d,KAAb,CAAmB,+BAAnB;EACD;EACF,KA3BD;;EA6BA,SAAKye,WAAL,GAAoB9hB,CAAD;EAAA;;EAAA,2BAAO8B,GAAG,CAAC0C,KAAX,+CAAO,WAAWsd,WAAX,CAAuB9hB,CAAvB,CAAP;EAAA,KAAnB,CAtR2B;;;EAyR3B,SAAKqb,wBAAL,GAAiCwY,MAAD,IAAY;EAC1C0hB,MAAAA,wBAAwB,CAACv7C,mBAAD,EAAsB65B,MAAtB,CAAxB;EACD,KAFD,CAzR2B;;;EA8R3B,SAAKrY,yBAAL,GAAkCqY,MAAD,IAAY;EAC3C0hB,MAAAA,wBAAwB,CAACt7C,oBAAD,EAAuB45B,MAAvB,CAAxB;EACD,KAFD;;EAIA,UAAM0hB,wBAAwB,GAAG,CAACjrC,SAAD,EAAYkrC,WAAZ,KAA4B;EAC3D,UAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACr7B,KAAjC,EAAwC;EAAE;EAAQ;;EAClD,YAAMta,IAAI,GAAG,EAAb;EACAA,MAAAA,IAAI,CAAC4K,IAAL,GAAY,OAAZ;EACA5K,MAAAA,IAAI,CAACmK,OAAL,GAAeM,SAAf;EACAzK,MAAAA,IAAI,CAAC8K,OAAL,GAAe;EAAE,SAAC5Q,OAAD,GAAWy7C,WAAW,CAACr7B;EAAzB,OAAf;;EAEA,UAAIq7B,WAAW,CAACn7B,OAAhB,EAAyB;EACvBxa,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB2P,UAAAA,UAAU,EAAEk7B,WAAW,CAACn7B;EAA3C,SAAf;EACD;;EAED,UAAIm7B,WAAW,CAACxd,YAAhB,EAA8B;EAC5Bn4B,QAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmBqtB,UAAAA,YAAY,EAAEwd,WAAW,CAACxd;EAA7C,SAAf;EACD,OAb0D;;;EAgB3D,UAAIwd,WAAW,CAACv2B,EAAZ,IAAkBu2B,WAAW,CAACv2B,EAAZ,KAAmB,IAArC,IAA6Cu2B,WAAW,CAACv2B,EAAZ,KAAmBjiB,SAApE,EAA+E;EAC7E,aAAK,MAAMI,GAAX,IAAkBo4C,WAAW,CAACv2B,EAA9B,EAAkC;EAChC,cAAI7hB,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOo4C,WAAW,CAACv2B,EAAZ,CAAe7hB,GAAf;EAA1B,aAAf;EACD;EACF;EACF,OAtB0D;;;EAyB3D,UAAIo4C,WAAW,CAAC3jB,OAAZ,IAAuB2jB,WAAW,CAAC3jB,OAAZ,KAAwB,IAA/C,IAAuD2jB,WAAW,CAAC3jB,OAAZ,KAAwB70B,SAAnF,EAA8F;EAC5F,aAAK,MAAMI,GAAX,IAAkBo4C,WAAW,CAAC3jB,OAA9B,EAAuC;EACrC,cAAIz0B,GAAG,CAAC2kB,UAAJ,CAAejoB,WAAf,CAAJ,EAAiC;EAC/B+F,YAAAA,IAAI,CAAC8K,OAAL,GAAe,EAAE,GAAG9K,IAAI,CAAC8K,OAAV;EAAmB,eAACvN,GAAD,GAAOo4C,WAAW,CAAC3jB,OAAZ,CAAoBz0B,GAApB;EAA1B,aAAf;EACD;EACF;EACF;;EACD,gEAAcwN,YAAd,CAA2B/K,IAA3B;EACD,KAjCD;;EAmCA,SAAK41C,WAAL,GAAoBC,CAAD,IAAO;EACxB,8DAAatH,QAAb,GAAwBuH,MAAM,CAACD,CAAD,CAA9B;;EACA,UAAIA,CAAC,KAAK,CAAV,EAAa;EACXxQ,QAAAA,cAAc,CAACuJ,MAAf,GAAwB,EAAxB;EACD,OAFD,MAEO;EACL,eAAOvJ,cAAc,CAACuJ,MAAtB;EACD;EACF,KAPD;EAQA;EACJ;EACA;EACA;;;EACI,SAAKmH,oBAAL,GAA4B,CAACx4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD3C,iBAAxD;EACD,KAFD;;EAIA,SAAKy7C,oBAAL,GAA4B,CAACz4C,GAAD,EAAML,KAAN,KAAgB;EAC1C,WAAKia,OAAL,CAAaH,8BAAb,CAA4CzZ,GAA5C,EAAiDL,KAAjD,EAAwD1C,iBAAxD;EACD,KAFD;;EAIA,SAAKy7C,oBAAL,GAA4B,CAAC14C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaK,oBAAb,CAAkCja,GAAlC,EAAuCL,KAAvC,EAA8CzC,WAA9C;EACD,OAFD,MAEO;EACLiX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,kEAAd;EACD;EACF,KAND;;EAQA,SAAK2tC,mBAAL,GAA2B,CAAC34C,GAAD,EAAML,KAAN,KAAgB;EACzC,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,6EAAd;EACD;EACF,KAND;;EAQA,SAAK4tC,oBAAL,GAA4B,CAAC54C,GAAD,EAAML,KAAN,KAAgB;EAC1C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAaU,oBAAb,CAAkCta,GAAlC,EAAuCL,KAAvC,EAA8CxC,WAA9C;EACD,OAFD,MAEO;EACLgX,QAAAA,OAAO,CAACnJ,KAAR,CAAc,mEAAd;EACD;EACF,KAND;;EAQA,SAAK6tC,sBAAL,GAA8B,CAAC74C,GAAD,EAAML,KAAN,KAAgB;EAC5C,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;EAC1D,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,gFAAd;EACD;EACF,KAND;;EAQA,SAAK8tC,uBAAL,GAA+B,CAAC94C,GAAD,EAAML,KAAN,KAAgB;EAC7C,UAAIqM,KAAK,CAACC,OAAN,CAActM,KAAd,CAAJ,EAA0B;EACxB,aAAKia,OAAL,CAAagB,uBAAb,CAAqC5a,GAArC,EAA0CL,KAA1C,EAAiDvC,cAAjD;EACD,OAFD,MAEO;EACL+W,QAAAA,OAAO,CAACnJ,KAAR,CAAc,sEAAd;EACD;EACF,KAND;;EAQA,SAAK+tC,iBAAL,GAA0B/4C,GAAD,IAAS;EAChC,WAAK4Z,OAAL,CAAakB,uBAAb,CAAqC9a,GAArC,EAA0C3C,cAA1C;EACD,KAFD;;EAIA,UAAM27C,wBAAwB,GAAG,CAACpgC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,KAA0C;EACzEH,MAAAA,uBAAuB,CAACC,YAAD,EAAeC,SAAf,EAA0BC,WAA1B,8BAAuC,IAAvC,uDAAsD,IAAtD,wBAAvB;EACD,KAFD;EAIA;EACJ;EACA;EACA;EACA;EACA;EACA;;;EACI,SAAKmgC,WAAL,GAAmB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;EACrC;EACA,UAAKD,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAvB,IAAqCC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAA/D,EAA0E;EACxEhlC,QAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD;;EACD,UAAI62B,GAAG,IAAIC,GAAX,EAAgB;EACd;EACA,YAAID,GAAG,IAAI,CAAC,EAAR,IAAcA,GAAG,GAAG,EAAxB,EAA4B;EAC1B/kC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACA;EACD,SALa;;;EAOd,YAAI82B,GAAG,IAAI,CAAC,GAAR,IAAeA,GAAG,GAAG,GAAzB,EAA8B;EAC5BhlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,mDAAZ;EACA;EACD;;EACD3d,QAAAA,GAAG,CAACF,QAAJ,GAAe;EAAE40C,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAf;;EACA,gFAAuB;EAAEC,UAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,UAAAA,SAAS,EAAEF;EAA5B,SAAvB;EACD,OAbD,MAaO;EACL,YAAIl3B,SAAS,CAACq3B,WAAd,EAA2B;EACzBr3B,UAAAA,SAAS,CAACq3B,WAAV,CAAsBC,kBAAtB,CAAyCC,YAAY,CAACvD,IAAb,CAAkB,IAAlB,CAAzC,EAAkEwD,SAAlE;EACD,SAFD,MAEO;EACLtlC,UAAAA,OAAO,CAACkO,GAAR,CAAY,+CAAZ;EACD;EACF;EACF,KA1BD;;EA4BA,aAASm3B,YAAT,CAAuBpmB,QAAvB,EAAiC;EAC/B,UAAI8lB,GAAG,GAAG9lB,QAAQ,CAACsmB,MAAT,CAAgBC,QAA1B;EACA,UAAIR,GAAG,GAAG/lB,QAAQ,CAACsmB,MAAT,CAAgBE,SAA1B;EACAl1C,MAAAA,GAAG,CAACF,QAAJ,GAAe;EAAE40C,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAf;;EACA,8EAAuB;EAAEC,QAAAA,QAAQ,EAAEF,GAAZ;EAAiBG,QAAAA,SAAS,EAAEF;EAA5B,OAAvB;EACD;;EAED,aAASM,SAAT,CAAoBzuC,KAApB,EAA2B;EACzB,cAAQA,KAAK,CAACmmC,IAAd;EACE,aAAKnmC,KAAK,CAAC6uC,iBAAX;EACE1lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,0CAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC8uC,oBAAX;EACE3lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,sCAAZ;EACA;;EACF,aAAKrX,KAAK,CAAC+uC,OAAX;EACE5lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,6CAAZ;EACA;;EACF,aAAKrX,KAAK,CAACgvC,aAAX;EACE7lC,UAAAA,OAAO,CAACkO,GAAR,CAAY,4BAAZ;EACA;EAZJ;EAcD;;EAED,UAAM43B,GAAG,+BAAG,IAAH,aAAT;;EACAA,IAAAA,GAAG,CAACzD,MAAJ,GAAa,KAAKA,MAAlB;EACAyD,IAAAA,GAAG,CAAC3+B,KAAJ,GAAY,KAAKA,KAAjB;;EACA2+B,IAAAA,GAAG,CAACjiC,WAAJ,GAAkB,CAAC9D,UAAD,EAAa+D,YAAb,KAA8B;EAC9CD,MAAAA,WAAW,CAAC9D,UAAD,EAAa+D,YAAb,EAA2B,0DAAcoF,SAAzC,CAAX;EACD,KAFD;;EAGA48B,IAAAA,GAAG,CAACC,aAAJ,GAAoB,CAACja,OAAD,EAAUF,oBAAV,KAAmC;EACrDuG,MAAAA,YAAY,CAACvG,oBAAD,CAAZ;;EACA,WAAKnC,aAAL,CAAmBoC,cAAnB,CAAkCC,OAAlC,EAA2CF,oBAA3C;EACD,KAHD;;EAIAka,IAAAA,GAAG,CAACE,EAAJ,GAAUz6B,GAAD,IAAS;EAChB4nB,MAAAA,GAAG,CAAC5nB,GAAD,EAAM;EACPpW,QAAAA,MAAM,8BAAE,IAAF,uBADC;EAEPC,QAAAA,OAAO,8BAAE,IAAF,yBAFA;EAGPF,QAAAA,OAAO,8BAAE,IAAF,yBAHA;EAIPtJ,QAAAA,MAAM,8BAAE,IAAF;EAJC,OAAN,CAAH;EAMD,KAPD;;EAQAk6C,IAAAA,GAAG,CAACxhC,OAAJ,GAAeC,OAAD,IAAa;EACzBD,MAAAA,OAAO,CAACC,OAAD,8BAAU,IAAV,wBAAP;EACD,KAFD;;EAGAuhC,IAAAA,GAAG,CAACG,eAAJ,GAAsB,MAAM;EAC1B,aAAQ,oEAAuB,CAA/B;EACD,KAFD;;EAGAH,IAAAA,GAAG,CAACI,QAAJ,GAAgBxhC,SAAD,IAAe;EAC5BmgC,MAAAA,wBAAwB,CAAC,GAAD,EAAMngC,SAAN,CAAxB;EACD,KAFD;;EAGAohC,IAAAA,GAAG,CAACK,QAAJ,GAAe,CAACzhC,SAAD,EAAY0hC,UAAZ,KAA2B;EACxCvB,MAAAA,wBAAwB,CAAC,IAAD,EAAOngC,SAAP,EAAkB0hC,UAAlB,CAAxB;EACD,KAFD;;EAGAN,IAAAA,GAAG,CAACO,UAAJ,GAAkB3hC,SAAD,IAAe;EAC9BmgC,MAAAA,wBAAwB,CAAC,GAAD,EAAMngC,SAAN,CAAxB;EACD,KAFD;;EAGAohC,IAAAA,GAAG,CAACQ,gBAAJ,GAAwB5hC,SAAD,IAAe;EACpCnU,MAAAA,GAAG,CAACwC,WAAJ,GAAkB,EAAlB;EACA,YAAM4wB,QAAQ,GAAG30B,QAAQ,CAACqP,sBAAT,CAAgC,2BAAhC,CAAjB;;EAEA,WAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6oB,QAAQ,CAAC13B,MAA7B,EAAqC6O,CAAC,EAAtC,EAA0C;EACxC,cAAM0hB,OAAO,GAAGmH,QAAQ,CAAC7oB,CAAD,CAAxB;;EACA,YAAI0hB,OAAO,CAAC3tB,IAAZ,EAAkB;EAChB,gBAAMP,IAAI,GAAG;EAAEO,YAAAA,IAAI,EAAE2tB,OAAO,CAAC3tB,IAAhB;EAAsB03C,YAAAA,cAAc,EAAE/pB,OAAO,CAACgqB;EAA9C,WAAb;EACAj2C,UAAAA,GAAG,CAACwC,WAAJ,CAAgBiB,IAAhB,CAAqB1F,IAArB;EACD;EACF;;EAEDu2C,MAAAA,wBAAwB,CAACx8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAbD;;EAcAohC,IAAAA,GAAG,CAACW,qBAAJ,GAA6Bj7C,KAAD,IAAW;EACrC+E,MAAAA,GAAG,CAACwC,WAAJ,GAAkBvH,KAAlB;EACD,KAFD;;EAGAs6C,IAAAA,GAAG,CAACY,qBAAJ,GAA4B,MAAM;EAChC,aAAOn2C,GAAG,CAACwC,WAAX;EACD,KAFD;;EAGA+yC,IAAAA,GAAG,CAACa,wBAAJ,GAA+B,CAACjiC,SAAD,EAAYkiC,aAAZ,KAA8B;EAC3Dd,MAAAA,GAAG,CAACW,qBAAJ,CAA0BG,aAA1B;;EACA/B,MAAAA,wBAAwB,CAACx8C,6BAAD,EAAgCqc,SAAhC,CAAxB;EACD,KAHD;;EAIAohC,IAAAA,GAAG,CAACe,mBAAJ,GAA0B,MAAM;EAC9B,aAAOt2C,GAAG,CAAC+C,iBAAX;EACD,KAFD;;EAGAwyC,IAAAA,GAAG,CAACgB,sBAAJ,GAA8Bt7C,KAAD,IAAW;EACtC+E,MAAAA,GAAG,CAAC+C,iBAAJ,GAAwB9H,KAAxB;EACD,KAFD;;EAGAs6C,IAAAA,GAAG,CAACiB,sBAAJ,GAA8BthC,OAAD,IAAa;EACxC,UAAIA,OAAO,CAACnd,eAAD,CAAX,EAA8B;EAC5BiI,QAAAA,GAAG,CAACyC,mBAAJ,GAA0ByS,OAAO,CAACnd,eAAD,CAAjC;EACD;EACF,KAJD;;EAKA4H,IAAAA,MAAM,CAAC82C,QAAP,GAAkB92C,MAAM,CAAC+2C,QAAP,GAAkBnB,GAApC;;EAEA,+BAAI7nC,SAAS,CAACV,OAAd,wDAAI,oBAAoB,CAApB,EAAuBhY,EAA3B,EAA+B;EAAA;;EAC7B;EACA;EACA;EACAuI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,yBAA4C+W,SAAS,CAACV,OAAtD,wDAA4C,oBAAoB,CAApB,EAAuBhY,EAAnE;EACA,WAAKosB,IAAL;EACD;EACF,GA5jB4B;;;EA+jB7BA,EAAAA,IAAI,CAAEhsB,SAAF,EAAaH,MAAb,EAAqBC,YAArB,EAAmCC,KAAnC,EAA4D;EAAA,QAAlBk9B,WAAkB,uEAAJ,EAAI;;EAC9D,QAAIt4B,MAAM,CAACgV,IAAP,CAAYsjB,WAAZ,EAAyB32B,MAAzB,GAAkC,CAAtC,EAAyC;EACvC02B,MAAAA,cAAc,CAACC,WAAD,CAAd;EACD;;EACD,QAAI,oEAAuB,CAA3B,EAA8B;EAC5B;EACA;EACD;;EAED90B,IAAAA,cAAc,CAACc,YAAf,CAA4B,QAA5B,EAAsCsB,MAAM,CAACG,QAAP,CAAgBC,QAAtD;;EACA,QAAI,CAAC,0DAAc/K,EAAnB,EAAuB;EACrB,UAAI,CAACI,SAAL,EAAgB;EACd,gEAAakR,KAAb,CAAmBG,WAAnB;;EACA;EACD;;EACD,gEAAczR,EAAd,GAAmBI,SAAnB;EACAmI,MAAAA,cAAc,CAACqC,gBAAf,CAAgCjJ,UAAhC,EAA4CvB,SAA5C;;EACA,8DAAamM,KAAb,CAAmB,qCAAqC,0DAAcvM,EAAtE;EACD;;EACDg4B,IAAAA,gBAAgB,6BAAC,IAAD,yBAAe,0DAAch4B,EAA7B,CAAhB;EACAwiC,IAAAA,mCAAmC,6BAAC,IAAD,wBAAnC;EACA,8DAAcngB,UAAd,GAA2B/gB,cAAc,GAAG,GAAjB,GAAuB,0DAActB,EAAhE;;EAEA,QAAIC,MAAJ,EAAY;EACV,gEAAcA,MAAd,GAAuBA,MAAvB;EACD;;EACD,QAAIC,YAAJ,EAAkB;EAChB,gEAAcA,YAAd,GAA6BA,YAA7B;EACD;;EACD,QAAIC,KAAJ,EAAW;EACT,gEAAcA,KAAd,GAAsBA,KAAtB;EACD;;EAED,UAAMwhD,YAAY,GAAG72C,QAAQ,CAAC6J,IAA9B;EACA,UAAMV,SAAS,GAAGF,YAAY,CAAC4tC,YAAY,CAACjhC,WAAb,EAAD,CAA9B,CAlC8D;;EAqC9D,QAAI,OAAOzM,SAAS,CAAC/K,CAAjB,KAAuB,WAAvB,IAAsC+K,SAAS,CAAC2tC,OAAV,IAAqB,GAA/D,EAAoE;EAClE;EACD;;EAED52C,IAAAA,GAAG,CAAC2C,kBAAJ,GAAyB,IAAzB;;EACA,QAAI3C,GAAG,CAAC4C,YAAJ,CAAiBlH,MAAjB,GAA0B,CAA9B,EAAiC;EAC/B,WAAKm2C,OAAL,CAAapuC,IAAb,CAAkBzD,GAAG,CAAC4C,YAAtB;EACD;;EAED;;EACA,SAAKi0C,WAAL;EACA,UAAMC,cAAc,GAAG9tB,WAAW,CAAC,MAAM;EACvC,UAAI,wDAAarnB,OAAjB,EAA0B;EACxBsnB,QAAAA,aAAa,CAAC6tB,cAAD,CAAb;;EACA,kEAAc5wC,mBAAd;EACD;EACF,KALiC,EAK/B,IAL+B,CAAlC;;EAMA,oCAAI,IAAJ,mBAAiB;EACf;EACAzH,MAAAA,QAAQ,CAACua,gBAAT,CAA0B,OAA1B,8BAAmC,IAAnC;EAEA;;EACArZ,MAAAA,MAAM,CAACqZ,gBAAP,CAAwB,UAAxB,8BAAoC,IAApC;EACD,KAND,MAMO;EACL;EACAva,MAAAA,QAAQ,CAACgjB,mBAAT,CAA6B,OAA7B,8BAAsC,IAAtC;EACD;;EACD,sEAAqB,CAArB;EACD,GAhoB4B;EAmoB7B;;;EAmEAo1B,EAAAA,WAAW,GAAI;EACb,UAAMF,YAAY,GAAGh3C,MAAM,CAACG,QAAP,CAAgB6J,IAArC;EACA,UAAMV,SAAS,GAAGF,YAAY,CAAC4tC,YAAY,CAACjhC,WAAb,EAAD,CAA9B,CAFa;;EAIb,UAAMpb,GAAG,GAAG,0DAAckL,sBAAd,EAAZ;;EACA,QAAIuxC,OAAO,GAAI,OAAOz8C,GAAG,CAACka,CAAX,KAAiB,WAAlB,GAAiC,CAAjC,GAAqCla,GAAG,CAACka,CAAvD;EACAla,IAAAA,GAAG,CAACka,CAAJ,GAAQ,EAAEuiC,OAAV;;EACA,8DAAc/wC,sBAAd,CAAqC1L,GAArC,EAPa;;;EAUb,QAAIyD,IAAI,GAAG,EAAX;EACA,QAAIi5C,cAAc,GAAGxtC,SAAS,CAAC/K,QAAQ,CAACw4C,QAAV,CAA9B;;EAEA,QAAIt3C,MAAM,CAACG,QAAP,CAAgBC,QAAhB,KAA6Bi3C,cAAjC,EAAiD;EAC/C,YAAME,MAAM,GAAG,GAAf;;EACA,UAAIF,cAAc,KAAK,EAAvB,EAA2B;EACzBA,QAAAA,cAAc,GAAGA,cAAc,CAACt7C,MAAf,GAAwBw7C,MAAxB,GAAiCF,cAAc,CAACr7C,SAAf,CAAyB,CAAzB,EAA4Bu7C,MAA5B,CAAjC,GAAuEF,cAAxF;EACAj5C,QAAAA,IAAI,CAACk5C,QAAL,GAAgBD,cAAhB;EACD;;EAED,UAAIG,SAAS,GAAGluC,SAAS,CAACmuC,UAAV,IAAwBnuC,SAAS,CAACouC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAACz7C,MAAV,GAAmBw7C,MAAnB,GAA4BC,SAAS,CAACx7C,SAAV,CAAoB,CAApB,EAAuBu7C,MAAvB,CAA5B,GAA6DC,SAAzE;EACAp5C,QAAAA,IAAI,CAACu5C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,SAAS,GAAGtuC,SAAS,CAACuuC,UAAV,IAAwBvuC,SAAS,CAACwuC,WAAlD;;EACA,UAAI,OAAOF,SAAP,KAAqB,WAAzB,EAAsC;EACpCA,QAAAA,SAAS,GAAGA,SAAS,CAAC77C,MAAV,GAAmBw7C,MAAnB,GAA4BK,SAAS,CAAC57C,SAAV,CAAoB,CAApB,EAAuBu7C,MAAvB,CAA5B,GAA6DK,SAAzE;EACAx5C,QAAAA,IAAI,CAAC25C,EAAL,GAAUH,SAAV,CAFoC;EAGrC;;EAED,UAAII,WAAW,GAAG1uC,SAAS,CAAC2uC,YAAV,IAA0B3uC,SAAS,CAAC4uC,aAAtD;;EACA,UAAI,OAAOF,WAAP,KAAuB,WAA3B,EAAwC;EACtCA,QAAAA,WAAW,GAAGA,WAAW,CAACj8C,MAAZ,GAAqBw7C,MAArB,GAA8BS,WAAW,CAACh8C,SAAZ,CAAsB,CAAtB,EAAyBu7C,MAAzB,CAA9B,GAAiES,WAA/E;EACA55C,QAAAA,IAAI,CAAC+5C,EAAL,GAAUH,WAAV,CAFsC;EAGvC,OAvB8C;;;EA0B/C,UAAI,OAAO1uC,SAAS,CAACwuC,WAAjB,KAAiC,WAArC,EAAkD;EAChD,cAAMM,EAAE,GAAG9uC,SAAS,CAACwuC,WAArB;;EACA,YAAIM,EAAE,CAAC5uC,KAAH,CAAS,2BAAT,CAAJ,EAA2C;EACzCpL,UAAAA,IAAI,CAACg6C,EAAL,GAAUA,EAAV,CADyC;EAE1C;EACF;EACF;;EAEDh6C,IAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACA6C,IAAAA,IAAI,CAACi6C,GAAL,GAAWrB,YAAX;EAEA54C,IAAAA,IAAI,CAAC3H,gBAAD,CAAJ,GAAyBsZ,mBAAmB,EAA5C;;EACA,QAAIrC,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,8DAAc4f,QAAd,CAAuBrX,IAAvB,EApDa;;;EAsDb,QAAI0zB,QAAQ,CAAC1zB,IAAI,CAAC2vC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,gFAAwB3vC,IAAxB;EACD;;EACDsP,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB,MAAtB,CAAtB;EACAA,IAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,8DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;;EAEA,QAAIyvB,QAAQ,CAAC1zB,IAAI,CAAC2vC,EAAN,CAAR,KAAsB,CAA1B,EAA6B;EAC3B,WAAKhgB,KAAL,CAAWjqB,IAAX,CAAgBvK,UAAhB,EAA4B;EAAE6M,QAAAA,CAAC,EAAE;EAAL,OAA5B;EACD;;EAED,oEAAoB4wC,YAApB;EACAlpC,IAAAA,UAAU,CAAC,MAAM;EACf,UAAIspC,OAAO,IAAI,CAAf,EAAkB;EAChB;EACA;EACD;;EAED,sCAAI,IAAJ,2CAA8B;EAC5B/tB,QAAAA,WAAW,CAAC,MAAM;EAChB;EACD,SAFU,EAERnxB,8BAFQ,CAAX;EAGD;EACF,KAXS,EAWPD,yBAXO,CAAV;;EAaA;EACD;;EAgBD65C,EAAAA,wBAAwB,GAAI;EAC1B,WAAOl0C,cAAc,CAACE,wBAAf,MAA6C,KAAK+zC,qBAAzD;EACD;;EAWD;EACA,MAAI3I,aAAJ,CAAmBkI,QAAnB,EAA6B;EAC3B,SAAKnI,cAAL,CAAoB,KAAKT,kBAAzB,IAA+C4I,QAA/C;EACD;EAED;EACF;EACA;EACA;;;EA8BE;;EACA;EACF;EACA;EACA;EACA;EAEEkH,EAAAA,UAAU,CAAEC,GAAF,EAAO;EACf,QAAI,OAAOA,GAAP,KAAe,SAAnB,EAA8B;EAC5BzoC,MAAAA,OAAO,CAACnJ,KAAR,CAAc,0DAAd;EACA;EACD,KAJc;EAMf;;;EACA,QAAItG,GAAG,CAAC6C,OAAJ,KAAgBq1C,GAAhB,IAAuB,CAACA,GAA5B,EAAiC;EAC/B,gEAAchyC,mBAAd;EACD;;EACDlG,IAAAA,GAAG,CAAC6C,OAAJ,GAAcq1C,GAAd;EACD;;EAEDC,EAAAA,aAAa,GAAI;EACf,WAAO,iBAAP;EACD;;EAEDC,EAAAA,cAAc,CAAE95C,IAAF,EAAQ2wC,YAAR,EAAsB;EAClC,WAAOD,QAAQ,CAACnlB,MAAT,CAAgBvrB,IAAhB,EAAsB2wC,YAAtB,8BAAoC,IAApC,sCAAP;EACD;;EAEDoB,EAAAA,aAAa,CAAEC,aAAF,EAAiBC,aAAjB,EAAgC;EAC3C,QAAI,wDAAajE,QAAb,KAA0B,CAA9B,EAAiC;EAC/B,aAAO,sEAAoB+D,aAApB,CAAkCC,aAAlC,EAAiDC,aAAjD,CAAP;EACD,KAFD,MAEO;EACL,YAAMpzC,CAAC,GAAG,+BAAV;;EACA,8DAAamJ,KAAb,CAAmBnJ,CAAnB;;EACA,aAAOorB,OAAO,CAACE,MAAR,CAAe,IAAIS,KAAJ,CAAU/rB,CAAV,CAAf,CAAP;EACD;EACF;;EAEDyzC,EAAAA,cAAc,CAAEC,eAAF,EAAmB;EAC/B,0EAAoBD,cAApB,CAAmCC,eAAnC;EACD;;EAEDC,EAAAA,2BAA2B,CAAEC,QAAF,EAAY;EACrC,0EAAoBD,2BAApB,CAAgDC,QAAhD;EACD;;EAEDC,EAAAA,kCAAkC,CAAED,QAAF,EAAY;EAC5C,0EAAoBC,kCAApB,CAAuDD,QAAvD;EACD;;EA14B4B;;yDAooBR;EACnB,OAAKa,WAAL,CAAiB5pC,iBAAjB;;EACA,OAAK6pC,OAAL,CAAa7pC,iBAAb;;EACA,OAAK0lB,KAAL,CAAW1lB,iBAAX;;EACA,OAAKkN,OAAL,CAAalN,iBAAb;;EACA,OAAKkxB,aAAL,CAAmBlxB,iBAAnB;EACD;;uCAEU8vB,MAAkB;EAAA,MAAZ0M,KAAY,uEAAJ,EAAI;EAC3B,MAAI6T,OAAJ;EACA,SAAO,YAAY;EACjBliB,IAAAA,YAAY,CAACkiB,OAAD,CAAZ;EACAA,IAAAA,OAAO,GAAG5qC,UAAU,CAACqqB,IAAD,EAAO0M,KAAP,CAApB;EACD,GAHD;EAID;;yDAEoB;EACnB,QAAM8T,oBAAoB,+BAAG,IAAH,wBAAkB,MAAM;EAChD,QAAI,kEAAsBx4C,QAAQ,CAAC6J,IAAnC,EAAyC;EACvC,WAAKktC,WAAL;EACD;EACF,GAJyB,CAA1B;;EAKAyB,EAAAA,oBAAoB;EACrB;;+EAE+B;EAC9B,MAAI;EACF,oCAAI,IAAJ,+CAA+B;EAC7BniB,MAAAA,YAAY,6BAAC,IAAD,8CAAZ;EACD;;EAED,UAAM+c,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EACA,QAAI,CAACw/B,aAAL,EAAoB;EAClB,8DAAa3xC,KAAb,CAAmB,yBAAnB;;EACA;EACD;EAED;;;EACA2xC,IAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EAEA;;EACA,oFAA4BjL,UAAU,CAAC,MAAM;EAC3C,YAAM+M,MAAM,GAAGjd,cAAc,CAAC2C,kBAAf,CAAkCtH,eAAlC,KAAsD,EAArE;EACA,YAAMiqB,SAAS,GAAGpkB,QAAQ,CAACiV,cAAT,CAAwB8G,MAAxB,aAAwBA,MAAxB,uBAAwBA,MAAM,CAAEgF,aAAhC,CAAlB;EACA;;EACA,YAAM0zB,aAAa,GAAGz0C,QAAQ,CAACiV,cAAT,CAAwB,eAAxB,CAAtB;;EAEA,UAAI,CAACw/B,aAAL,EAAoB;EAClB,gEAAa3xC,KAAb,CAAmB,yBAAnB;;EACA;EACD;;EAED,UAAIshB,SAAJ,EAAe;EACb,cAAM;EAAEC,UAAAA,GAAF;EAAOC,UAAAA;EAAP,YAAiBF,SAAS,CAACG,qBAAV,EAAvB;;EACA,YAAI6wB,MAAM,CAACX,aAAa,CAACn3B,SAAf,CAAN,GAAkC,CAAlC,IAAuCm3B,aAAa,CAACn3B,SAAd,KAA4B,IAAvE,EAA6E;EAC3Em3B,UAAAA,aAAa,CAAC55B,KAAd,CAAoBZ,OAApB,GAA8B,MAA9B;EACD;;EACDw6B,QAAAA,aAAa,CAAC55B,KAAd,CAAoBwJ,GAApB,aAA6BA,GAAG,GAAG,CAAnC;EACAowB,QAAAA,aAAa,CAAC55B,KAAd,CAAoB2J,IAApB,aAA8BF,KAAK,GAAG,CAAtC;EACD;EACF,KAnBqC,EAmBnCzpB,4BAnBmC,CAAtC;EAoBD,GAnCD,CAmCE,OAAOgN,KAAP,EAAc;EACd,4DAAa/E,KAAb,CAAmB,yCAAnB,EAA8D+E,KAA9D;EACD;EACF;;+CAqFe;EACd,MAAI+G,WAAW,GAAG,0DAAc7X,WAAhC;;EACA,MAAIuI,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C7C,SAA1C,CAAP;EACAmS,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB5V,QAAtB,CAAtB;EACA4V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmB3C,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAA/B,CAAtB;;EAEA,4DAAcuX,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;yDAEoB;EACnB,SAAQ,OAAOrC,MAAM,CAAC44C,MAAd,KAAyB,WAAzB,IAAwC54C,MAAM,CAAC44C,MAAP,CAAcC,IAAd,KAAuB,YAAvE;EACD;;yDAMmBz6C,MAAM;EACxB,MAAI,KAAK0zC,wBAAL,EAAJ,EAAqC;EACnC1zC,IAAAA,IAAI,CAACiwC,KAAL,GAAa,IAAb;EACD;EACF;;uDAckB/wB,SAAS;EAC1B;EACA,MAAIlf,IAAI,GAAG,EAAX;EACAA,EAAAA,IAAI,CAAC4vC,EAAL,GAAU,EAAV;EACA,QAAMl9B,UAAU,GAAG,EAAnB;EACA1S,EAAAA,IAAI,CAAC4K,IAAL,GAAY,SAAZ;;EACA,MAAI8H,UAAU,CAACwE,EAAX,IAAiB,IAArB,EAA2B;EACzBxE,IAAAA,UAAU,CAACwE,EAAX,GAAgB,IAAI7a,IAAJ,GAAWH,QAAX,GAAsBkP,KAAtB,CAA4B,qBAA5B,EAAmD,CAAnD,CAAhB;EACD;;EACDpL,EAAAA,IAAI,CAACmX,OAAL,GAAezE,UAAf;;EACA,MAAIwM,OAAJ,EAAa;EACX,UAAMlO,IAAI,GAAGhV,MAAM,CAACgV,IAAP,CAAYkO,OAAZ,CAAb;EACAlO,IAAAA,IAAI,CAACC,OAAL,CAAa1T,GAAG,IAAI;EAClByC,MAAAA,IAAI,CAAC4vC,EAAL,CAAQryC,GAAR,IAAe2hB,OAAO,CAAC3hB,GAAD,CAAtB;EACD,KAFD;EAGD;;EACD,MAAI0E,GAAG,CAACF,QAAR,EAAkB;EAChB/B,IAAAA,IAAI,CAAC4vC,EAAL,GAAU,EAAE,GAAG5vC,IAAI,CAAC4vC,EAAV;EAAc,SAAG3tC,GAAG,CAACF;EAArB,KAAV;EACD;;EACD/B,EAAAA,IAAI,GAAG,0DAAcoX,qBAAd,CAAoCpX,IAApC,EAA0C,IAA1C,CAAP;;EACA,4DAAcqX,QAAd,CAAuBrX,IAAvB;;EACA,QAAMsX,cAAc,GAAG3K,YAAY,CAAC9M,IAAI,CAACC,SAAL,CAAeE,IAAf,CAAD,8BAAuB,IAAvB,wBAAnC;;EACA,MAAIsP,WAAW,GAAG,0DAAc7X,WAAhC;;EACA6X,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,MAAd,EAAsB7V,QAAtB,CAAtB;EACA6V,EAAAA,WAAW,GAAGzD,QAAQ,CAACyD,WAAD,EAAc,GAAd,EAAmBgI,cAAnB,CAAtB;;EAEA,4DAAcC,kBAAd,CAAiCjI,WAAjC,EAA8CrN,GAAG,CAACgC,YAAlD;EACD;;QCv4BG0L,SAAS,GAAG,IAAI+qC,SAAJ,CAAc94C,MAAM,CAAC+N,SAArB;EAElB/N,MAAM,CAAC+N,SAAP,GAAmB/N,MAAM,CAACgO,SAAP,GAAmBD,SAAtC;;;;;;;;"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index c9b70aed..789e88d4 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),p=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),h=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,p),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),pe=e=>{if(he(e))return"$D_"+e},he=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,p="",h=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(h<<=1,15==g){p+=f(h);break}g++}return p})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(h,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},pt=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=pt(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,ht(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=pt(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),ht(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:p}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,p=a.top+n,h=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(h+t<=s){const e=s-(h+t);b=e>=y?h+y:h+e}else if(p-t>=n){const e=p-t;b=e>=y?p-t-y:p-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{console.log("renderCustomHtml targetingMsgJson",e);const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),vi(o,r),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{console.log("processElement element",e),console.log("processElement html",t),e&&(e.outerHTML=t)},bi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},mi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},yi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n retryElement.outerHTML = html\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n if (parentWindow) {\n parentWindow.postMessage('asdasda', '*')\n window.addEventListener('message', (event) => {\n const eventData = JSON.parse(event.data)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n if (eventData && msgContent.templateType === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs[0])\n }\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 789e88d4..97f83935 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),h=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),p=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,h),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),he=e=>{if(pe(e))return"$D_"+e},pe=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,h="",p=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(p<<=1,15==g){h+=f(p);break}g++}return h})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(p,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=he(i[2]+i[0]+i[1])}return t},ht=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=ht(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,pt(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=ht(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),pt(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:h}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,h=a.top+n,p=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(p+t<=s){const e=s-(p+t);b=e>=y?p+y:p+e}else if(h-t>=n){const e=h-t;b=e>=y?h-t-y:h-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),vi(o,r),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=(e,t)=>{e&&(e.outerHTML=t)},bi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},mi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},yi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctBuilder':\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderPreview':\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n return\n case 'ctBuilderSDKCheck':\n if (parentWindow) {\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n break\n }\n }\n}\n\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import {CTWebPersonalisationBanner} from '../web-personalisation/banner'\nimport {CTWebPersonalisationCarousel} from '../web-personalisation/carousel'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', {detail: inaObj})\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson) => {\n const {display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot} = targetingMsgJson || {}\n\n const {divId} = display || {}\n const details = display.details[0]\n const html = details.html\n\n if (!divId || !html) {\n console.error('No div Id or no html found')\n return\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n retryElement.outerHTML = html\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with divId '${ divId }'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', {detail: inaObj})\n document.dispatchEvent(jsonEvent)\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case 'ctCustomHtmlPreview':\n if (parentWindow) {\n parentWindow.postMessage('ready', '*')\n window.addEventListener('message', (event) => {\n const eventData = JSON.parse(event.data)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n if (eventData && msgContent.templateType === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs[0])\n }\n }, false)\n }\n break\n default:\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview && displayObj['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","stringify","read","data","getItem","parse","e","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","encodeURIComponent","readCookie","nameEQ","ca","split","idx","c","charAt","indexOf","decodeURIComponent","window","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","err","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","max","lruCache","tempLruCache","cache","entry","push","get","item","saveCacheToLS","set","allKeys","objToArray","index","temp","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","splice","CleverTapAPI","request","device","session","s","global","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","t","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","includes","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","a","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","padding","repeat","base64","rawData","atob","processedData","i","charCodeAt","Uint8Array","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","f","fromCharCode","pow","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","random","skipResARP","_arp","pageLoadUrl","useIP","slice","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","g","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","_session","shadow","popup","container","resizeObserver","attachShadow","mode","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","message","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","b","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","init","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","el","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","right","getBoundingClientRect","left","header","headerTitle","createCategories","options","root","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","counter","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","map","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","res","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","Error","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","x","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","parseInt","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","_request","setupClickEvent","contentDiv","isLegacy","_device","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","state","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_logger","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","br","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","apply","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","lib","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","update","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","_isPersonalisationActive","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index 97f83935..ba92a2bc 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).clevertap=t()}(this,(function(){"use strict";var e=0;function t(t){return"__private_"+e+++"_"+t}function i(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}const o="clevertap-prod.com",n="https:";var r=t("accountId"),s=t("region"),a=t("targetDomain"),l=t("dcSdkversion"),c=t("token");class d{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";Object.defineProperty(this,r,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:""}),Object.defineProperty(this,a,{writable:!0,value:o}),Object.defineProperty(this,l,{writable:!0,value:""}),Object.defineProperty(this,c,{writable:!0,value:""}),this.id=e,t&&(this.region=t),i&&(this.targetDomain=i),n&&(this.token=n)}get id(){return i(this,r)[r]}set id(e){i(this,r)[r]=e}get region(){return i(this,s)[s]}set region(e){i(this,s)[s]=e}get dcSDKVersion(){return i(this,l)[l]}set dcSDKVersion(e){i(this,l)[l]=e}get targetDomain(){return i(this,a)[a]}set targetDomain(e){i(this,a)[a]=e}get token(){return i(this,c)[c]}set token(e){i(this,c)[c]=e}get finalTargetDomain(){return this.region?"".concat(this.region,".").concat(this.targetDomain):this.targetDomain===o?"".concat("eu1",".").concat(this.targetDomain):this.targetDomain}get dataPostPEURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/defineVars")}get dataPostURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/a?t=96")}get recorderURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/r?r=1")}get emailURL(){return"".concat(n,"//").concat(this.finalTargetDomain,"/e?r=1")}}const u=new RegExp("^\\s+|\\.|:|\\$|'|\"|\\\\|\\s+$","g"),h=new RegExp("^\\s+|'|\"|\\\\|\\s+$","g"),p=new RegExp("'","g"),g="clear",f="Charged ID",v="WZRK_CHARGED_ID",b="WZRK_G",m="WZRK_K",y="WZRK_CAMP",w="WZRK_CAMP_G",C="WZRK_EV",k="WZRK_META",x="WZRK_PR",I="WZRK_ACCOUNT_ID",M="WZRK_ARP",S="WZRK_L",P="global",O="optOut",E="useIP",_="WZRK_X",D="push",A=31536e3,L="wzrk_",T="wzrk_id",N="Notification Viewed",z="Notification Clicked",j="WZRK_FPU",R="WZRK_PSD",B="$incr",U="$add",F="$remove",W="$delete",V="WZRK_INBOX_CONFIG",q="WZRK_INBOX",H=1e3,G="wzrk_fetch",K="WZRK_PUSH_CONFIG",Z="vapid_migration_prompt_shown",J="notif_last_time",Q="wzrk_wrapper",Y="pnWrapper",$="WZRK_POPUP_LOADING",X=["Stayed","UTM Visited","App Launched","Notification Sent",N,z],ee=e=>"string"==typeof e||e instanceof String,te=e=>"[object Object]"===Object.prototype.toString.call(e),ie=e=>"object"==typeof e&&e instanceof Date,oe=e=>{for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},ne=e=>!isNaN(parseFloat(e))&&isFinite(e),re=e=>/^-?[\d.]+(?:e-?\d+)?$/.test(e)&&"number"==typeof e,se=e=>null!=e&&"undefined"!==e,ae=(e,t)=>{if("object"!=typeof e){let i;return ee(e)?(i=le(e,h),i.length>1024&&(i=i.substring(0,1024),t.reportError(521,i+"... length exceeded 1024 chars. Trimmed."))):i=e,i}for(const i in e)if(e.hasOwnProperty(i)){const o=ae(e[i],t);let n;n=le(i,u),n.length>1024&&(n=n.substring(0,1024),t.reportError(520,n+"... length exceeded 1024 chars. Trimmed.")),delete e[i],e[n]=o}return e},le=(e,t)=>e.replace(t,""),ce=()=>{const e=new Date;return e.getFullYear()+""+e.getMonth()+e.getDay()},de=()=>Math.floor((new Date).getTime()/1e3),ue=e=>"$D_"+Math.round(e.getTime()/1e3),he=e=>{if(pe(e))return"$D_"+e},pe=e=>{const t=/^(\d{4})(\d{2})(\d{2})$/.exec(e);if(null==t)return!1;const i=t[3],o=t[2]-1,n=t[1],r=new Date(n,o,i);return r.getDate()==i&&r.getMonth()==o&&r.getFullYear()==n};class ge{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,fe.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(k);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(k);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(k,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(m);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(m,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(S);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(S,o),i.debug("stored in ".concat(S," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(S);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(S,i))}}const fe={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ve=t("keyOrder"),be=t("deleteFromObject");class me{constructor(e){Object.defineProperty(this,be,{value:ye}),Object.defineProperty(this,ve,{writable:!0,value:void 0}),this.max=e;let t=ge.readFromLSorCookie(_);if(t){const e={};i(this,ve)[ve]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ve)[ve].push(t[o][0]));this.cache=e}else this.cache={},i(this,ve)[ve]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,be)[be](e,this.cache),this.cache[e]=t,i(this,ve)[ve].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ve)[ve];null!=o?this.cache=i(this,be)[be](e,this.cache):n.length===this.max&&(this.cache=i(this,be)[be](n[0],this.cache)),this.cache[e]=t,i(this,ve)[ve][i(this,ve)[ve]-1]!==e&&i(this,ve)[ve].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ve)[ve];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ge.saveToLSorCookie(_,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ve)[ve];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ve)[ve];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ve)[ve].length;if(e)return i(this,ve)[ve][e-1]}}var ye=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ve)[ve])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ve)[ve]=JSON.parse(JSON.stringify(o)),n},we=t("logger"),Ce=t("request"),ke=t("device"),xe=t("session");class Ie{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,we,{writable:!0,value:void 0}),Object.defineProperty(this,Ce,{writable:!0,value:void 0}),Object.defineProperty(this,ke,{writable:!0,value:void 0}),Object.defineProperty(this,xe,{writable:!0,value:void 0}),i(this,we)[we]=t,i(this,Ce)[Ce]=o,i(this,ke)[ke]=n,i(this,xe)[xe]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ge.removeBackup(n,i(this,we)[we]),n>fe.globalCache.REQ_N)return;if(se(i(this,ke)[ke].gcookie)||e&&(a=!0),!se(i(this,ke)[ke].gcookie)||o||"boolean"==typeof r){const n=i(this,xe)[xe].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(te(e)){for(var t in e)if(e.hasOwnProperty(t)){if(te(e[t])||Array.isArray(e[t]))return!1;ie(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Fe=(e,t)=>{if(te(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!te(e[i][o])||!Ue(e[i][o])))return!1}else{if(te(e[i])||Array.isArray(e[i]))return!1;ie(e[i])&&(e[i]=ue(e[i]))}if(ee(e[f])||re(e[f])){const i=e[f]+"";if(void 0===Be&&(Be=ge.readFromLSorCookie(v)),void 0!==Be&&Be.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Be=i,ge.saveToLSorCookie(v,i)}return!0}return!1};var We=t("logger"),Ve=t("oldValues"),qe=t("request"),He=t("isPersonalisationActive"),Ge=t("processEventArray");class Ke extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ge,{value:Ze}),Object.defineProperty(this,We,{writable:!0,value:void 0}),Object.defineProperty(this,Ve,{writable:!0,value:void 0}),Object.defineProperty(this,qe,{writable:!0,value:void 0}),Object.defineProperty(this,He,{writable:!0,value:void 0}),i(this,We)[We]=o,i(this,Ve)[Ve]=t,i(this,qe)[qe]=n,i(this,He)[He]=r}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!ee(t)){i(this,We)[We].error(_e);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,We)[We].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,We)[We].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=le(t,u),0!==e.length){const n=e.shift();if(te(n)){if("Charged"===t){if(!Fe(n,i(this,We)[We])){i(this,We)[We].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ue(n)){i(this,We)[We].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,qe)[qe].processEvent(o)}};const Je=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Qe=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Ye=()=>window.location.hostname,$e=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),et(e)),Xe=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),et=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,u=2,h="",p=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,u),u++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,u),u++)}for(i=2,t=0;t>=1;for(;;){if(p<<=1,15==g){h+=f(p);break}g++}return h})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Xe.charAt(n)+Xe.charAt(r)+Xe.charAt(s)+Xe.charAt(a);return l};var tt=t("fireRequest"),it=t("dropRequestDueToOptOut"),ot=t("addUseIPToRequest"),nt=t("addARPToRequest");class rt{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,tt)[tt](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=H,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),H;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=H,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}rt.logger=void 0,rt.device=void 0,rt.account=void 0,Object.defineProperty(rt,tt,{value:function(e,t,o,n,r){var s,a;if(i(this,it)[it]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(se(this.device.gcookie)||(fe.blockRequest=!0),r&&r===G)!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,tt)[tt](e,void 0,o,n)}),this.getDelayFrequency());else if(!se(this.device.gcookie)&&fe.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,tt)[tt](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(se(this.device.gcookie)&&(e=Qe(e,"gc",this.device.gcookie)),e=i(this,nt)[nt](e,o)),e=Qe(e,"tries",t),e=i(this,ot)[ot](e),e=Qe(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Qe(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(rt,it,{value:function(){return!fe.isOptInRequest&&se(this.device.gcookie)&&ee(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(fe.isOptInRequest=!1,!1)}}),Object.defineProperty(rt,ot,{value:function(e){var t=ge.getMetaProp(E);return"boolean"!=typeof t&&(t=!1),Qe(e,E,t?"true":"false")}}),Object.defineProperty(rt,nt,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Qe(e,"arp",$e(JSON.stringify(t),this.logger))}return ge._isLocalStorageSupported()&&void 0!==localStorage.getItem(M)&&null!==localStorage.getItem(M)?Qe(e,"arp",$e(JSON.stringify(ge.readFromLSorCookie(M)),this.logger)):e}});const st=()=>{let e={};if(ge._isLocalStorageSupported()){let t=ge.read(y);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(p,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},at=e=>{if(ge._isLocalStorageSupported()){const t={...st(),...e},i=JSON.stringify(t);ge.save(y,encodeURIComponent(i)),lt()}},lt=()=>{if(ge._isLocalStorageSupported()){let i=ge.read(b);if(se(i))try{i=JSON.parse(decodeURIComponent(ge.read(b)));const o=ge.read(w)?JSON.parse(decodeURIComponent(ge.read(w))):{};if(i&&ge._isLocalStorageSupported()){var e={},t=st();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=ce(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ge.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},ct=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));let t={};if(ge._isLocalStorageSupported()){let i={};t=st();const o=ge.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=ce();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},dt=(e,t)=>{let{logger:i}=t,o=!1;if(te(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(De)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ae)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Le)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Te)),"Age"===t&&null!=n&&(ne(n)?e.Age=+n:(o=!1,i.error(Ne))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||ie(n)||(o=!1,i.error(ze)),ie(n)&&(e[t]=ue(n))):ie(n)&&(e[t]=ue(n)),"Phone"!==t||oe(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),ne(n)?e.Phone=+n:(o=!1,i.error(Re+". Removed."))):(o=!1,i.error(Re+". Removed."))),o||delete e[t]}return o},ut=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=he(i[2]+i[0]+i[1])}return t},ht=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ge._isLocalStorageSupported()){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x),null==fe.globalProfileMap&&(fe.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(fe.globalProfileMap.hasOwnProperty(i)&&!t)continue;fe.globalProfileMap[i]=e[i]}null!=fe.globalProfileMap._custom&&delete fe.globalProfileMap._custom,ge.saveToLSorCookie(x,fe.globalProfileMap)}},gt=(e,t,i)=>{if(null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const t=st();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",at(t)}if(null!=fe.campaignDivMap){const t=fe.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var ft=t("logger"),vt=t("request"),bt=t("account"),mt=t("oldValues"),yt=t("isPersonalisationActive"),wt=t("processProfileArray");class Ct extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,wt,{value:kt}),Object.defineProperty(this,ft,{writable:!0,value:void 0}),Object.defineProperty(this,vt,{writable:!0,value:void 0}),Object.defineProperty(this,bt,{writable:!0,value:void 0}),Object.defineProperty(this,mt,{writable:!0,value:void 0}),Object.defineProperty(this,yt,{writable:!0,value:void 0}),i(this,ft)[ft]=o,i(this,vt)[vt]=n,i(this,bt)[bt]=r,i(this,mt)[mt]=t,i(this,yt)[yt]=s}push(){if(ge.readFromLSorCookie(I)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,ft)[ft].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported value type");s(t)}fe.globalProfileMap[e]=r,ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)||{}),!fe.globalProfileMap.hasOwnProperty(e))return void i(this,ft)[ft].error("The property ".concat(e," does not exist."));const n=t=>{const i=fe.globalProfileMap[e].indexOf(t);-1!==i&&fe.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,ft)[ft].error("Unsupported propVal type");n(t)}0===fe.globalProfileMap[e].length&&delete fe.globalProfileMap[e],ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==fe.globalProfileMap&&(fe.globalProfileMap=ge.readFromLSorCookie(x)),(null==fe||null===(o=fe.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete fe.globalProfileMap[e]:i(this,ft)[ft].error("The property ".concat(e," does not exist.")),ge.saveToLSorCookie(x,fe.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,vt)[vt].addSystemDataToObject(n,!0),i(this,vt)[vt].addFlags(n);const s=$e(JSON.stringify(n),i(this,ft)[ft]);let a=i(this,bt)[bt].dataPostURL;a=Qe(a,"type",D),a=Qe(a,"d",s),i(this,vt)[vt].saveAndFireRequest(a,fe.blockRequest)}}var kt=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,oe(n)||!dt(n,{logger:i(this,ft)[ft]}))return}else if(null!=o.Facebook){const e=o.Facebook;oe(e)||e.error||(n=ut(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];oe(e)||e.error||(n=ht(e,{logger:i(this,ft)[ft]}))}if(null!=n&&!oe(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,pt(n,!0),r=i(this,vt)[vt].addSystemDataToObject(r,void 0),i(this,vt)[vt].addFlags(r);const e=$e(JSON.stringify(r),i(this,ft)[ft]);let t=i(this,bt)[bt].dataPostURL;t=Qe(t,"type",D),t=Qe(t,"d",e),i(this,vt)[vt].saveAndFireRequest(t,fe.blockRequest)}}},xt=t("request"),It=t("logger"),Mt=t("account"),St=t("session"),Pt=t("oldValues"),Ot=t("device"),Et=t("processOUL"),_t=t("handleCookieFromCache"),Dt=t("deleteUser"),At=t("processLoginArray");class Lt extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,At,{value:jt}),Object.defineProperty(this,Dt,{value:zt}),Object.defineProperty(this,_t,{value:Nt}),Object.defineProperty(this,Et,{value:Tt}),Object.defineProperty(this,xt,{writable:!0,value:void 0}),Object.defineProperty(this,It,{writable:!0,value:void 0}),Object.defineProperty(this,Mt,{writable:!0,value:void 0}),Object.defineProperty(this,St,{writable:!0,value:void 0}),Object.defineProperty(this,Pt,{writable:!0,value:void 0}),Object.defineProperty(this,Ot,{writable:!0,value:void 0}),i(this,xt)[xt]=o,i(this,Mt)[Mt]=n,i(this,St)[St]=r,i(this,It)[It]=s,i(this,Pt)[Pt]=t,i(this,Ot)[Ot]=a}clear(){i(this,It)[It].debug("clear called. Reset flag has been set."),i(this,Dt)[Dt](),ge.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ge.readFromLSorCookie(m);const n=ge.readFromLSorCookie(b);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==fe.LRU_CACHE&&ge._isLocalStorageSupported()&&(fe.LRU_CACHE=new me(100)),s)null!=n&&(fe.LRU_CACHE.set(r,n),fe.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(fe.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==fe.LRU_CACHE.getLastKey()?i(this,_t)[_t]():(t=!1,ge.saveToLSorCookie(j,t));const e=fe.LRU_CACHE.get(r);fe.LRU_CACHE.set(r,e),ge.saveToLSorCookie(b,e),i(this,Ot)[Ot].gcookie=e;const o=fe.LRU_CACHE.getSecondLastKey();if(ge.readFromLSorCookie(j)&&-1!==o){const e=fe.LRU_CACHE.cache[o];i(this,xt)[xt].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,Ot)[Ot].gcookie=n,ge.saveToLSorCookie(b,n),t=!1):this.clear(),ge.saveToLSorCookie(j,!1),r=e[0]}o.id=r,ge.saveToLSorCookie(m,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,oe(s)||!dt(s,{logger:i(this,It)[It]}))return}else if(null!=r.Facebook){const e=r.Facebook;oe(e)||e.error||(s=ut(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];oe(e)&&!e.error&&(s=ht(e,{logger:i(this,It)[It]}))}if(null!=s&&!oe(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ge._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),pt(s,!0),a=i(this,xt)[xt].addSystemDataToObject(a,void 0),i(this,xt)[xt].addFlags(a),t&&(a.isOUL=!0);const n=$e(JSON.stringify(a),i(this,It)[It]);let r=i(this,Mt)[Mt].dataPostURL;r=Qe(r,"type",D),r=Qe(r,"d",n),i(this,xt)[xt].saveAndFireRequest(r,fe.blockRequest,t)}}},Nt=function(){fe.blockRequest=!1,console.debug("Block request is false"),ge._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(y,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,St)[St].setSessionCookieObject("")},zt=function(){fe.blockRequest=!0,i(this,It)[It].debug("Block request is true"),fe.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ge._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ge.removeCookie(b,fe.broadDomain),ge.removeCookie(y,Ye()),ge.removeCookie(m,Ye()),ge.removeCookie(i(this,St)[St].cookieName,fe.broadDomain),ge.removeCookie(M,fe.broadDomain),i(this,Ot)[Ot].gcookie=null,i(this,St)[St].setSessionCookieObject("")},jt=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&te(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ge.setInstantDeleteFlagInK();try{i(this,Et)[Et]([t])}catch(e){i(this,It)[It].debug(e)}}else i(this,It)[It].error("Profile object is in incorrect format")}};class Rt extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ge._isLocalStorageSupported()){const i=st();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",at(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Bt extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Zt(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Yt;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Ut extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ge.readFromLSorCookie(V)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Vt();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),qt(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),qt(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Qt,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Qt,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Bt(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ge.readFromLSorCookie(V)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Vt();i[e]=t,qt(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(fe.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Kt(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Vt();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Zt(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:u,headerCategoryHeight:h}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const Ft=e=>{e.inbox_preview?fe.inbox.incomingMessagesForPreview=e.inbox_notifs:fe.inbox.incomingMessages=e},Wt=e=>{const t=ge.readFromLSorCookie(q)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ge.saveToLSorCookie(q,i),i}return t},Vt=()=>{const e=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(e))return{};const t=Wt(e);return t.hasOwnProperty(e)?t[e]:{}},qt=e=>{const t=JSON.parse(decodeURIComponent(ge.read(b)));if(!se(t))return;const i={...Wt(t),[t]:e};ge.saveToLSorCookie(q,i)},Ht=e=>new Promise(((t,i)=>{const o=()=>{null===fe.inbox&&(e=>{Gt(),fe.inbox=new Ut({logger:e}),document.body.appendChild(fe.inbox)})(e)},n=()=>{const t=ge.readFromLSorCookie(V)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===fe.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==fe.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),Gt=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Ut),customElements.define("ct-inbox-message",Bt))},Kt=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,u=a.right+o,h=a.top+n,p=a.bottom,g=a.height,f=a.width;let v,b,m=!1;const y=16;if(p+t<=s){const e=s-(p+t);b=e>=y?p+y:p+e}else if(h-t>=n){const e=h-t;b=e>=y?h-t-y:h-t-e}else m=!0,b=c+g/2-t/2,bs&&(b=s-t);if(m){const e=u+i;if(e<=r){v=u+(e+y<=r?y:r-e)}else{const e=d-i;v=e-(e-y>=o?y:e-o)}}else v=l+f/2-i/2,vr&&(v=u-i>=o?u-i:r-i);return{xPos:v,yPos:b}},Zt=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Jt=()=>Object.keys(ge.readFromLSorCookie(V)||{}).length>0,Qt='\n\n\n',Yt='\n\n\n',$t="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",Xt="wve-anti-flicker-show",ei="wve-anti-flicker-hide",ti="wve-flicker-style",ii=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,oi(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&li(e.data,!0)}},oi=(e,t,i,o)=>{"complete"===document.readyState?ai(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&ai(e,t,i,o)}))};let ni,ri=!1,si=!1;function ai(e,t,i,o){if(!ri){window.Shopify&&(si=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",ni=document.createElement("div"),ni.id="overlayDiv",ni.style.position="relative",ni.style.display="flex",document.body.appendChild(ni);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:si,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),ri=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=$t,document.head.appendChild(n)}var n}const li=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function ci(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(ei))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(ei),e.classList.add(Xt)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=ti;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class di extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class ui extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const hi=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",di);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},pi=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",ui);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},gi=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},fi=e=>{const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),o.outerHTML=r,clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},vi=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},bi=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},mi=(e,t)=>{const i="\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox allow-same-origin'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport encryption from './modules/security/Encryption'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => {}\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n encryption.key = clevertap.account?.[0].id\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n encryption.logger = this.#logger\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n this.enableLocalStorageEncryption = (value) => {\n encryption.enableLocalStorageEncryption = value\n }\n\n this.isLocalStorageEncryptionEnabled = () => {\n return encryption.enableLocalStorageEncryption\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n if (accountId) {\n encryption.key = accountId\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","SYSTEM_EVENTS","KEYS_TO_ENCRYPT","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","root","factory","module","exports","this","CryptoJS","crypto","window","self","globalThis","msCrypto","global","require","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","Error","create","F","subtype","C","C_lib","lib","Base","extend","overrides","mixIn","init","$super","apply","arguments","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","Hex","stringify","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","i","thatByte","j","ceil","slice","random","nBytes","push","C_enc","enc","hexChars","bite","join","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","max","_minBufferSize","nWordsReady","nBytesReady","min","offset","_doProcessBlock","splice","Hasher","cfg","_doReset","update","messageUpdate","finalize","hash","_doFinalize","_createHelper","hasher","message","_createHmacHelper","C_algo","HMAC","algo","require$$0","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","ArrayBuffer","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","swapEndian","word","Base64","map","_map","base64Chars","byte1","byte2","byte3","triplet","charAt","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","indexOf","parseLoop","bits1","bits2","bitsCombined","Base64url","urlSafe","_safe_map","T","abs","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","a","b","c","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","x","s","t","HmacMD5","W","SHA1","HmacSHA1","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","pow","SHA256","f","g","h","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","t1","t2","HmacSHA256","undef","require$$1","SHA224","HmacSHA224","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1l","t1h","t2l","t2h","HmacSHA512","require$$2","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","state","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sl","sr","ar","br","cr","dr","er","f1","f2","f3","f4","f5","rotl","z","HmacRIPEMD160","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","PBKDF2","keySize","iterations","compute","password","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","block","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","finalProcessedData","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","StreamCipher","finalProcessedBlocks","C_mode","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","processBlock","xorBlock","encryptBlock","_prevBlock","thisBlock","decryptBlock","C_pad","pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","BlockCipher","modeCreator","_mode","__creator","CipherParams","cipherParams","formatter","C_format","format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","counter","_counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","require$$3","require$$4","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x2","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s0","s1","s2","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","_des1","_des2","_des3","RC4","keySigBytes","S","_S","keyByteIndex","keyByte","_i","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","C_","G","Rabbit","X","_X","_C","_b","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","RabbitLegacy","N","ORIG_P","ORIG_S","BLOWFISH_CTX","pbox","sbox","ctx","BlowFish_Encrypt","left","right","Xl","Xr","temp","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","keyIndex","index","Data1","Data2","res","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","Encryption","_logger","classInstance","enableLocalStorageEncryption","shouldEncrypt","includes","shouldDecrypt","decryptedData","encryption","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","read","getItem","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","readCookie","nameEQ","ca","split","idx","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","lruCache","tempLruCache","cache","entry","get","item","saveCacheToLS","set","allKeys","objToArray","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","CleverTapAPI","request","device","session","_request","_device","_session","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","_oldValues","_isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","repeat","base64","rawData","atob","processedData","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","skipResARP","_arp","pageLoadUrl","useIP","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","_account","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","shadow","popup","container","resizeObserver","attachShadow","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","getBoundingClientRect","header","headerTitle","createCategories","options","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","WVE_QUERY_PARAMS","BUILDER","PREVIEW","SDK_CHECK","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","checkCustomHtmlNativeDisplayPreview","eventData","inAppNotifs","inapp_notifs","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","setupClickEvent","contentDiv","isLegacy","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventHandler","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","_variableStore","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","isLocalStorageEncryptionEnabled","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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C,IAAI,GAAGF,KAAK,CAACE,IAAjB,CAAA;EACA,QAAA,IAAI8F,YAAY,GAAGhG,KAAK,CAACc,SAAzB,CAAA;EAEL;EACA;EACA;;EACK,QAAA,IAAImF,KAAK,GAAGlG,CAAC,CAACmG,GAAF,GAAQ,EAApB,CAAA;EAEL;EACA;EACA;;EACK,QAAcD,KAAK,CAACE,IAAN,GAAajG,IAAI,CAACC,MAAL,CAAY;EAC5C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACSG,UAAAA,IAAI,EAAE,UAAU8F,IAAV,EAAgBC,GAAhB,EAAqB;EACvB,YAAKD,IAAAA,CAAAA,IAAL,GAAYA,IAAZ,CAAA;EACA,YAAKC,IAAAA,CAAAA,GAAL,GAAWA,GAAX,CAAA;EACb,WAAA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAnL4C,S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"} \ No newline at end of file +{"version":3,"file":"clevertap.js","sources":["src/options.js","src/modules/account.js","src/util/constants.js","src/util/datatypes.js","src/util/datetime.js","node_modules/crypto-js/core.js","node_modules/crypto-js/x64-core.js","node_modules/crypto-js/lib-typedarrays.js","node_modules/crypto-js/enc-utf16.js","node_modules/crypto-js/enc-base64.js","node_modules/crypto-js/enc-base64url.js","node_modules/crypto-js/md5.js","node_modules/crypto-js/sha1.js","node_modules/crypto-js/sha256.js","node_modules/crypto-js/sha224.js","node_modules/crypto-js/sha512.js","node_modules/crypto-js/sha384.js","node_modules/crypto-js/sha3.js","node_modules/crypto-js/ripemd160.js","node_modules/crypto-js/hmac.js","node_modules/crypto-js/pbkdf2.js","node_modules/crypto-js/evpkdf.js","node_modules/crypto-js/cipher-core.js","node_modules/crypto-js/mode-cfb.js","node_modules/crypto-js/mode-ctr.js","node_modules/crypto-js/mode-ctr-gladman.js","node_modules/crypto-js/mode-ofb.js","node_modules/crypto-js/mode-ecb.js","node_modules/crypto-js/pad-ansix923.js","node_modules/crypto-js/pad-iso10126.js","node_modules/crypto-js/pad-iso97971.js","node_modules/crypto-js/pad-zeropadding.js","node_modules/crypto-js/pad-nopadding.js","node_modules/crypto-js/format-hex.js","node_modules/crypto-js/aes.js","node_modules/crypto-js/tripledes.js","node_modules/crypto-js/rc4.js","node_modules/crypto-js/rabbit.js","node_modules/crypto-js/rabbit-legacy.js","node_modules/crypto-js/blowfish.js","node_modules/crypto-js/index.js","src/modules/security/Encryption.js","src/util/storage.js","src/util/lruCache.js","src/modules/api.js","src/modules/device.js","src/util/messages.js","src/util/validator.js","src/modules/event.js","src/util/url.js","src/util/encoder.js","src/util/requestDispatcher.js","src/util/clevertap.js","src/modules/profile.js","src/modules/userLogin.js","src/util/web-popupImageonly/popupImageonly.js","src/modules/web-inbox/Message.js","src/modules/web-inbox/inboxStyles.js","src/modules/web-inbox/WebInbox.js","src/modules/web-inbox/helper.js","src/modules/visualBuilder/builder_constants.js","src/modules/visualBuilder/dataUpdate.js","src/modules/visualBuilder/pageBuilder.js","src/util/web-personalisation/banner.js","src/util/web-personalisation/carousel.js","src/util/campaignRender/nativeDisplay.js","src/util/campaignRender/utilities.js","src/util/campaignRender/webPopup.js","src/modules/webPushPrompt/promptStyles.js","src/util/helpers.js","src/modules/notification.js","src/modules/webPushPrompt/promptConstants.js","src/modules/webPushPrompt/prompt.js","src/util/tr.js","src/modules/user.js","src/modules/logger.js","src/modules/session.js","src/modules/request.js","src/modules/privacy.js","src/modules/variables/variable.js","src/modules/variables/variableStore.js","src/clevertap.js","src/main.js"],"sourcesContent":["export const TARGET_DOMAIN = 'clevertap-prod.com'\nexport const TARGET_PROTOCOL = 'https:'\nexport const DEFAULT_REGION = 'eu1'\n","import { DEFAULT_REGION, TARGET_DOMAIN, TARGET_PROTOCOL } from '../options'\n\nexport default class Account {\n #accountId\n #region = ''\n #targetDomain = TARGET_DOMAIN\n #dcSdkversion = ''\n #token = ''\n\n constructor ({ id } = {}, region = '', targetDomain = TARGET_DOMAIN, token = '') {\n this.id = id\n if (region) {\n this.region = region\n }\n if (targetDomain) {\n this.targetDomain = targetDomain\n }\n if (token) {\n this.token = token\n }\n }\n\n get id () {\n return this.#accountId\n }\n\n set id (accountId) {\n this.#accountId = accountId\n }\n\n get region () {\n return this.#region\n }\n\n set region (region) {\n this.#region = region\n }\n\n get dcSDKVersion () {\n return this.#dcSdkversion\n }\n\n set dcSDKVersion (dcSDKVersion) {\n this.#dcSdkversion = dcSDKVersion\n }\n\n get targetDomain () {\n return this.#targetDomain\n }\n\n set targetDomain (targetDomain) {\n this.#targetDomain = targetDomain\n }\n\n get token () {\n return this.#token\n }\n\n set token (token) {\n this.#token = token\n }\n\n get finalTargetDomain () {\n if (this.region) {\n return `${this.region}.${this.targetDomain}`\n } else {\n if (this.targetDomain === TARGET_DOMAIN) {\n return `${DEFAULT_REGION}.${this.targetDomain}`\n }\n return this.targetDomain\n }\n }\n\n get dataPostPEURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/defineVars`\n }\n\n get dataPostURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/a?t=96`\n }\n\n get recorderURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/r?r=1`\n }\n\n get emailURL () {\n return `${TARGET_PROTOCOL}//${this.finalTargetDomain}/e?r=1`\n }\n}\n","export const unsupportedKeyCharRegex = new RegExp('^\\\\s+|\\\\\\.|\\:|\\\\\\$|\\'|\\\"|\\\\\\\\|\\\\s+$', 'g')\nexport const unsupportedValueCharRegex = new RegExp(\"^\\\\s+|\\'|\\\"|\\\\\\\\|\\\\s+$\", 'g')\nexport const doubleQuoteRegex = new RegExp('\\\"', 'g')\nexport const singleQuoteRegex = new RegExp('\\'', 'g')\nexport const CLEAR = 'clear'\nexport const CHARGED_ID = 'Charged ID'\nexport const CHARGEDID_COOKIE_NAME = 'WZRK_CHARGED_ID'\nexport const GCOOKIE_NAME = 'WZRK_G'\nexport const KCOOKIE_NAME = 'WZRK_K'\nexport const CAMP_COOKIE_NAME = 'WZRK_CAMP'\nexport const CAMP_COOKIE_G = 'WZRK_CAMP_G'// cookie for storing campaign details against guid\nexport const SCOOKIE_PREFIX = 'WZRK_S'\nexport const SCOOKIE_EXP_TIME_IN_SECS = 60 * 20 // 20 mins\nexport const EV_COOKIE = 'WZRK_EV'\nexport const META_COOKIE = 'WZRK_META'\nexport const PR_COOKIE = 'WZRK_PR'\nexport const ACCOUNT_ID = 'WZRK_ACCOUNT_ID'\nexport const ARP_COOKIE = 'WZRK_ARP'\nexport const LCOOKIE_NAME = 'WZRK_L'\nexport const NOTIF_COOKIE_NAME = 'WZRK_N'\nexport const GLOBAL = 'global' // used for email unsubscribe also\nexport const TOTAL_COUNT = 'tc'\nexport const DISPLAY = 'display'\nexport const UNDEFINED = 'undefined'\nexport const WEBPUSH_LS_KEY = 'WZRK_WPR'\nexport const OPTOUT_KEY = 'optOut'\nexport const CT_OPTOUT_KEY = 'ct_optout'\nexport const OPTOUT_COOKIE_ENDSWITH = ':OO'\nexport const USEIP_KEY = 'useIP'\nexport const LRU_CACHE = 'WZRK_X'\nexport const LRU_CACHE_SIZE = 100\nexport const IS_OUL = 'isOUL'\nexport const EVT_PUSH = 'push'\nexport const EVT_PING = 'ping'\nexport const COOKIE_EXPIRY = 86400 * 365 // 1 Year in seconds\nexport const MAX_TRIES = 200 // API tries\nexport const FIRST_PING_FREQ_IN_MILLIS = 2 * 60 * 1000 // 2 mins\nexport const CONTINUOUS_PING_FREQ_IN_MILLIS = 5 * 60 * 1000 // 5 mins\nexport const GROUP_SUBSCRIPTION_REQUEST_ID = '2'\nexport const categoryLongKey = 'cUsY'\nexport const WZRK_PREFIX = 'wzrk_'\nexport const WZRK_ID = 'wzrk_id'\nexport const NOTIFICATION_VIEWED = 'Notification Viewed'\nexport const NOTIFICATION_CLICKED = 'Notification Clicked'\nexport const FIRE_PUSH_UNREGISTERED = 'WZRK_FPU'\nexport const PUSH_SUBSCRIPTION_DATA = 'WZRK_PSD' // PUSH SUBSCRIPTION DATA FOR REGISTER/UNREGISTER TOKEN\nexport const COMMAND_INCREMENT = '$incr'\nexport const COMMAND_DECREMENT = '$decr'\nexport const COMMAND_SET = '$set'\nexport const COMMAND_ADD = '$add'\nexport const COMMAND_REMOVE = '$remove'\nexport const COMMAND_DELETE = '$delete'\nexport const WEBINBOX_CONFIG = 'WZRK_INBOX_CONFIG'\nexport const WEBINBOX = 'WZRK_INBOX'\nexport const MAX_INBOX_MSG = 15\nexport const VARIABLES = 'WZRK_PE'\nexport const PUSH_DELAY_MS = 1000\nexport const MAX_DELAY_FREQUENCY = 1000 * 60 * 10\nexport const WZRK_FETCH = 'wzrk_fetch'\nexport const WEBPUSH_CONFIG = 'WZRK_PUSH_CONFIG'\nexport const VAPID_MIGRATION_PROMPT_SHOWN = 'vapid_migration_prompt_shown'\nexport const NOTIF_LAST_TIME = 'notif_last_time'\nexport const TIMER_FOR_NOTIF_BADGE_UPDATE = 300\nexport const OLD_SOFT_PROMPT_SELCTOR_ID = 'wzrk_wrapper'\nexport const NEW_SOFT_PROMPT_SELCTOR_ID = 'pnWrapper'\nexport const POPUP_LOADING = 'WZRK_POPUP_LOADING'\nexport const CUSTOM_HTML_PREVIEW = 'ctCustomHtmlPreview'\n\nexport const SYSTEM_EVENTS = [\n 'Stayed',\n 'UTM Visited',\n 'App Launched',\n 'Notification Sent',\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED\n]\n\nexport const KEYS_TO_ENCRYPT = [\n KCOOKIE_NAME,\n LRU_CACHE,\n PR_COOKIE\n]\n","import {\n unsupportedKeyCharRegex,\n unsupportedValueCharRegex\n} from './constants'\n\nexport const isString = (input) => {\n return (typeof input === 'string' || input instanceof String)\n}\n\nexport const isObject = (input) => {\n // TODO: refine\n return Object.prototype.toString.call(input) === '[object Object]'\n}\n\nexport const isDateObject = (input) => {\n return typeof (input) === 'object' && (input instanceof Date)\n}\n\nexport const isObjectEmpty = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) { return false }\n }\n return true\n}\n\nexport const isConvertibleToNumber = (n) => {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\nexport const isNumber = (n) => {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(n) && typeof n === 'number'\n}\n\nexport const isValueValid = (value) => {\n if (value === null || value === undefined || value === 'undefined') {\n return false\n }\n return true\n}\n\nexport const arrayContains = (arr, obj) => {\n var i = arr.length\n while (i--) {\n if (arr[i] === obj) {\n return true\n }\n }\n return false\n}\n\nexport const removeUnsupportedChars = (o, logger) => {\n // keys can't be greater than 1024 chars, values can't be greater than 1024 chars\n if (typeof o === 'object') {\n for (const key in o) {\n if (o.hasOwnProperty(key)) {\n const sanitizedVal = removeUnsupportedChars(o[key], logger)\n let sanitizedKey\n sanitizedKey = sanitize(key, unsupportedKeyCharRegex)\n if (sanitizedKey.length > 1024) {\n sanitizedKey = sanitizedKey.substring(0, 1024)\n logger.reportError(520, sanitizedKey + '... length exceeded 1024 chars. Trimmed.')\n }\n delete o[key]\n o[sanitizedKey] = sanitizedVal\n }\n }\n } else {\n let val\n\n if (isString(o)) {\n val = sanitize(o, unsupportedValueCharRegex)\n if (val.length > 1024) {\n val = val.substring(0, 1024)\n logger.reportError(521, val + '... length exceeded 1024 chars. Trimmed.')\n }\n } else {\n val = o\n }\n return val\n }\n return o\n}\n\nexport const sanitize = (input, regex) => {\n return input.replace(regex, '')\n}\n","export const getToday = () => {\n const today = new Date()\n return today.getFullYear() + '' + today.getMonth() + '' + today.getDay()\n}\n\nexport const getNow = () => {\n return Math.floor((new Date()).getTime() / 1000)\n}\n\nexport const convertToWZRKDate = (dateObj) => {\n return ('$D_' + Math.round(dateObj.getTime() / 1000))\n}\n\nexport const setDate = (dt) => {\n // expecting yyyymmdd format either as a number or a string\n if (isDateValid(dt)) {\n return '$D_' + dt\n }\n}\n\nexport const isDateValid = (date) => {\n const matches = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(date)\n if (matches == null) return false\n const d = matches[3]\n const m = matches[2] - 1\n const y = matches[1]\n const composedDate = new Date(y, m, d)\n // eslint-disable-next-line eqeqeq\n return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y\n}\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","import { AES, enc } from 'crypto-js'\nimport { KEYS_TO_ENCRYPT } from '../../util/constants'\n\nclass Encryption {\n #key\n #logger\n #encryptLocalStorage = false\n\n set logger (classInstance) {\n this.#logger = classInstance\n }\n\n get logger () {\n return this.#logger\n }\n\n set key (value) {\n this.#key = value\n }\n\n get key () {\n return this.#key\n }\n\n set enableLocalStorageEncryption (value) {\n this.#encryptLocalStorage = value\n }\n\n get enableLocalStorageEncryption () {\n return this.#encryptLocalStorage\n }\n\n shouldEncrypt (key) {\n return this.#encryptLocalStorage && KEYS_TO_ENCRYPT.includes(key)\n }\n\n // For backwards compatibility, we should decrypt even if encrypt is false.\n // This means someone switched it on and then off.\n shouldDecrypt (key) {\n return KEYS_TO_ENCRYPT.includes(key)\n }\n\n encrypt (data) {\n return AES.encrypt(data, this.key).toString()\n }\n\n decrypt (data) {\n const decryptedData = AES.decrypt(data, this.key).toString(enc.Utf8)\n if (decryptedData === '') {\n return data\n } else {\n return decryptedData\n }\n }\n}\n\nconst encryption = new Encryption()\n\nexport default encryption\n","import {\n GCOOKIE_NAME,\n META_COOKIE,\n KCOOKIE_NAME,\n LCOOKIE_NAME\n} from './constants'\nimport encryption from '../modules/security/Encryption'\n\nexport class StorageManager {\n static save (key, value) {\n if (!key || !value) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n if (encryption.shouldEncrypt(key)) {\n localStorage.setItem(key, encryption.encrypt(value))\n return true\n }\n localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value))\n return true\n }\n }\n\n static read (key) {\n if (!key) {\n return false\n }\n let data = null\n if (this._isLocalStorageSupported()) {\n data = localStorage.getItem(key)\n }\n if (data != null) {\n try {\n if (encryption.shouldDecrypt(key)) {\n data = encryption.decrypt(data)\n }\n data = JSON.parse(data)\n } catch (e) {}\n }\n return data\n }\n\n static remove (key) {\n if (!key) {\n return false\n }\n if (this._isLocalStorageSupported()) {\n localStorage.removeItem(key)\n return true\n }\n }\n\n static removeCookie (name, domain) {\n let cookieStr = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n\n if (domain) {\n cookieStr = cookieStr + ' domain=' + domain + '; path=/'\n }\n\n document.cookie = cookieStr\n }\n\n static createCookie (name, value, seconds, domain) {\n let expires = ''\n let domainStr = ''\n if (seconds) {\n const date = new Date()\n date.setTime(date.getTime() + (seconds * 1000))\n\n expires = '; expires=' + date.toGMTString()\n }\n\n if (domain) {\n domainStr = '; domain=' + domain\n }\n\n value = encodeURIComponent(value)\n\n document.cookie = name + '=' + value + expires + domainStr + '; path=/'\n }\n\n static readCookie (name) {\n const nameEQ = name + '='\n const ca = document.cookie.split(';')\n for (let idx = 0; idx < ca.length; idx++) {\n let c = ca[idx]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n // eslint-disable-next-line eqeqeq\n if (c.indexOf(nameEQ) == 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n }\n\n static _isLocalStorageSupported () {\n return 'localStorage' in window && window.localStorage !== null && typeof window.localStorage.setItem === 'function'\n }\n\n static saveToLSorCookie (property, value) {\n if (value == null) {\n return\n }\n try {\n if (this._isLocalStorageSupported()) {\n this.save(property, encodeURIComponent(JSON.stringify(value)))\n } else {\n if (property === GCOOKIE_NAME) {\n this.createCookie(property, encodeURIComponent(value), 0, window.location.hostname)\n } else {\n this.createCookie(property, encodeURIComponent(JSON.stringify(value)), 0, window.location.hostname)\n }\n }\n $ct.globalCache[property] = value\n } catch (e) {}\n }\n\n static readFromLSorCookie (property) {\n let data\n if ($ct.globalCache.hasOwnProperty(property)) {\n return $ct.globalCache[property]\n }\n if (this._isLocalStorageSupported()) {\n data = this.read(property)\n } else {\n data = this.readCookie(property)\n }\n\n if (data !== null && data !== undefined && !(typeof data.trim === 'function' && data.trim() === '')) {\n let value\n try {\n value = JSON.parse(decodeURIComponent(data))\n } catch (err) {\n value = decodeURIComponent(data)\n }\n $ct.globalCache[property] = value\n return value\n }\n }\n\n static createBroadCookie (name, value, seconds, domain) {\n // sets cookie on the base domain. e.g. if domain is baz.foo.bar.com, set cookie on \".bar.com\"\n // To update an existing \"broad domain\" cookie, we need to know what domain it was actually set on.\n // since a retrieved cookie never tells which domain it was set on, we need to set another test cookie\n // to find out which \"broadest\" domain the cookie was set on. Then delete the test cookie, and use that domain\n // for updating the actual cookie.\n\n if (domain) {\n let broadDomain = $ct.broadDomain\n if (broadDomain == null) { // if we don't know the broadDomain yet, then find out\n const domainParts = domain.split('.')\n let testBroadDomain = ''\n for (let idx = domainParts.length - 1; idx >= 0; idx--) {\n if (idx === 0) {\n testBroadDomain = domainParts[idx] + testBroadDomain\n } else {\n testBroadDomain = '.' + domainParts[idx] + testBroadDomain\n }\n\n // only needed if the cookie already exists and needs to be updated. See note above.\n if (this.readCookie(name)) {\n // no guarantee that browser will delete cookie, hence create short lived cookies\n var testCookieName = 'test_' + name + idx\n this.createCookie(testCookieName, value, 10, testBroadDomain) // self-destruct after 10 seconds\n if (!this.readCookie(testCookieName)) { // if test cookie not set, then the actual cookie wouldn't have been set on this domain either.\n continue\n } else { // else if cookie set, then delete the test and the original cookie\n this.removeCookie(testCookieName, testBroadDomain)\n }\n }\n\n this.createCookie(name, value, seconds, testBroadDomain)\n const tempCookie = this.readCookie(name)\n // eslint-disable-next-line eqeqeq\n if (tempCookie == value) {\n broadDomain = testBroadDomain\n $ct.broadDomain = broadDomain\n break\n }\n }\n } else {\n this.createCookie(name, value, seconds, broadDomain)\n }\n } else {\n this.createCookie(name, value, seconds, domain)\n }\n }\n\n static getMetaProp (property) {\n const metaObj = this.readFromLSorCookie(META_COOKIE)\n if (metaObj != null) {\n return metaObj[property]\n }\n }\n\n static setMetaProp (property, value) {\n if (this._isLocalStorageSupported()) {\n let wzrkMetaObj = this.readFromLSorCookie(META_COOKIE)\n if (wzrkMetaObj == null) {\n wzrkMetaObj = {}\n }\n if (value === undefined) {\n delete wzrkMetaObj[property]\n } else {\n wzrkMetaObj[property] = value\n }\n this.saveToLSorCookie(META_COOKIE, wzrkMetaObj)\n }\n }\n\n static getAndClearMetaProp (property) {\n const value = this.getMetaProp(property)\n this.setMetaProp(property, undefined)\n return value\n }\n\n static setInstantDeleteFlagInK () {\n let k = this.readFromLSorCookie(KCOOKIE_NAME)\n if (k == null) {\n k = {}\n }\n k.flag = true\n this.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n static backupEvent (data, reqNo, logger) {\n let backupArr = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupArr === 'undefined') {\n backupArr = {}\n }\n backupArr[reqNo] = { q: data }\n this.saveToLSorCookie(LCOOKIE_NAME, backupArr)\n logger.debug(`stored in ${LCOOKIE_NAME} reqNo : ${reqNo} -> ${data}`)\n }\n\n static removeBackup (respNo, logger) {\n const backupMap = this.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap !== 'undefined' && backupMap !== null && typeof backupMap[respNo] !== 'undefined') {\n logger.debug(`del event: ${respNo} data-> ${backupMap[respNo].q}`)\n delete backupMap[respNo]\n this.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n }\n }\n}\n\nexport const $ct = {\n globalCache: {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n },\n LRU_CACHE: null,\n globalProfileMap: undefined,\n globalEventsMap: undefined,\n blockRequest: false,\n isOptInRequest: false,\n broadDomain: null,\n webPushEnabled: null,\n campaignDivMap: {},\n currentSessionId: null,\n wiz_counter: 0, // to keep track of number of times we load the body\n notifApi: {\n notifEnabledFromApi: false\n }, // helper variable to handle race condition and check when notifications were called\n unsubGroups: [],\n updatedCategoryLong: null,\n inbox: null,\n isPrivacyArrPushed: false,\n privacyArray: [],\n offline: false,\n location: null,\n dismissSpamControl: false,\n globalUnsubscribe: true,\n flutterVersion: null,\n variableStore: {},\n pushConfig: null\n // domain: window.location.hostname, url -> getHostName()\n // gcookie: -> device\n}\n","import { StorageManager } from './storage'\nimport { LRU_CACHE } from './constants'\n\nexport default class LRUCache {\n #keyOrder\n\n constructor (max) {\n this.max = max\n let lruCache = StorageManager.readFromLSorCookie(LRU_CACHE)\n if (lruCache) {\n const tempLruCache = {}\n this.#keyOrder = []\n lruCache = lruCache.cache\n for (const entry in lruCache) {\n if (lruCache.hasOwnProperty(entry)) {\n tempLruCache[lruCache[entry][0]] = lruCache[entry][1]\n this.#keyOrder.push(lruCache[entry][0])\n }\n }\n this.cache = tempLruCache\n } else {\n this.cache = {}\n this.#keyOrder = []\n }\n }\n\n get (key) {\n const item = this.cache[key]\n if (item) {\n this.cache = this.#deleteFromObject(key, this.cache)\n this.cache[key] = item\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n return item\n }\n\n set (key, value) {\n const item = this.cache[key]\n const allKeys = this.#keyOrder\n if (item != null) {\n this.cache = this.#deleteFromObject(key, this.cache)\n } else if (allKeys.length === this.max) {\n this.cache = this.#deleteFromObject(allKeys[0], this.cache)\n }\n this.cache[key] = value\n if (this.#keyOrder[this.#keyOrder - 1] !== key) {\n this.#keyOrder.push(key)\n }\n this.saveCacheToLS(this.cache)\n }\n\n saveCacheToLS (cache) {\n const objToArray = []\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n const temp = []\n temp.push(allKeys[index])\n temp.push(cache[allKeys[index]])\n objToArray.push(temp)\n }\n }\n StorageManager.saveToLSorCookie(LRU_CACHE, { cache: objToArray })\n }\n\n getKey (value) {\n if (value === null) {\n return null\n }\n const allKeys = this.#keyOrder\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (this.cache[allKeys[index]] === value) {\n return allKeys[index]\n }\n }\n }\n return null\n }\n\n getSecondLastKey () {\n const keysArr = this.#keyOrder\n if (keysArr != null && keysArr.length > 1) {\n return keysArr[keysArr.length - 2]\n }\n return -1\n }\n\n getLastKey () {\n const keysLength = this.#keyOrder.length\n if (keysLength) {\n return this.#keyOrder[keysLength - 1]\n }\n }\n\n #deleteFromObject (key, obj) {\n const allKeys = JSON.parse(JSON.stringify(this.#keyOrder))\n const newCache = {}\n let indexToDelete\n for (const index in allKeys) {\n if (allKeys.hasOwnProperty(index)) {\n if (allKeys[index] !== key) {\n newCache[allKeys[index]] = obj[allKeys[index]]\n } else {\n indexToDelete = index\n }\n }\n }\n allKeys.splice(indexToDelete, 1)\n this.#keyOrder = JSON.parse(JSON.stringify(allKeys))\n return newCache\n }\n}\n","import { COOKIE_EXPIRY, FIRE_PUSH_UNREGISTERED, GCOOKIE_NAME, KCOOKIE_NAME, LRU_CACHE_SIZE, USEIP_KEY } from '../util/constants'\nimport { isValueValid } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport LRUCache from '../util/lruCache'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class CleverTapAPI {\n #logger\n #request\n #device\n #session\n\n constructor ({ logger, request, device, session }) {\n this.#logger = logger\n this.#request = request\n this.#device = device\n this.#session = session\n }\n\n /**\n *\n * @param {string} global gcookie\n * @param {string} session\n * @param {boolean} resume sent true in case of an OUL request from client side, which is returned as it is by server\n * @param {number} respNumber the index of the request in backupmanager\n * @param {boolean} optOutResponse\n * @returns\n */\n\n s (global, session, resume, respNumber, optOutResponse) {\n let oulReq = false\n let newGuid = false\n\n // for a scenario when OUL request is true from client side\n // but resume is returned as false from server end\n // we maintan a OulReqN var in the window object\n // and compare with respNumber to determine the response of an OUL request\n if (window.isOULInProgress) {\n if (resume || (respNumber !== 'undefined' && respNumber === window.oulReqN)) {\n window.isOULInProgress = false\n oulReq = true\n }\n }\n\n // call back function used to store global and session ids for the user\n if (typeof respNumber === 'undefined') {\n respNumber = 0\n }\n\n StorageManager.removeBackup(respNumber, this.#logger)\n\n if (respNumber > $ct.globalCache.REQ_N) {\n // request for some other user so ignore\n return\n }\n\n if (!isValueValid(this.#device.gcookie)) {\n if (global) {\n newGuid = true\n }\n }\n\n if (!isValueValid(this.#device.gcookie) || resume || typeof optOutResponse === 'boolean') {\n const sessionObj = this.#session.getSessionCookieObject()\n\n /* If the received session is less than the session in the cookie,\n then don't update guid as it will be response for old request\n */\n if (window.isOULInProgress || (sessionObj.s && (session < sessionObj.s))) {\n return\n }\n this.#logger.debug(`Cookie was ${this.#device.gcookie} set to ${global}`)\n this.#device.gcookie = global\n if (!isValueValid(this.#device.gcookie)) {\n // clear useIP meta prop\n StorageManager.getAndClearMetaProp(USEIP_KEY)\n }\n if (global && StorageManager._isLocalStorageSupported()) {\n if ($ct.LRU_CACHE == null) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n const kIdFromLS = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n let guidFromLRUCache\n if (kIdFromLS != null && kIdFromLS.id) {\n guidFromLRUCache = $ct.LRU_CACHE.cache[kIdFromLS.id]\n if (resume) {\n if (!guidFromLRUCache) {\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, true)\n // replace login identity in OUL request\n // with the gcookie returned in exchange\n $ct.LRU_CACHE.set(kIdFromLS.id, global)\n }\n }\n }\n\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n // lastk provides the guid\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n // fire the request directly via fireRequest to unregister the token\n // then other requests with the updated guid should follow\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n }\n StorageManager.createBroadCookie(GCOOKIE_NAME, global, COOKIE_EXPIRY, window.location.hostname)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, global)\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n this.#session.manageSession(session)\n }\n\n // session cookie\n const obj = this.#session.getSessionCookieObject()\n\n // for the race-condition where two responses come back with different session ids. don't write the older session id.\n if (typeof obj.s === 'undefined' || obj.s <= session) {\n obj.s = session\n obj.t = getNow() // time of last response from server\n this.#session.setSessionCookieObject(obj)\n }\n\n // set blockRequest to false only if the device has a valid gcookie\n if (isValueValid(this.#device.gcookie)) {\n $ct.blockRequest = false\n }\n\n // only process the backup events after an OUL request or a new guid is recieved\n if ((oulReq || newGuid) && !this.#request.processingBackup) {\n this.#request.processBackupEvents()\n }\n\n $ct.globalCache.RESP_N = respNumber\n }\n}\n","import { isValueValid } from '../util/datatypes'\nimport { StorageManager } from '../util/storage'\nimport { GCOOKIE_NAME, COOKIE_EXPIRY } from '../util/constants'\n\nexport default class DeviceManager {\n #logger\n gcookie\n\n constructor ({ logger }) {\n this.#logger = logger\n this.gcookie = this.getGuid()\n }\n\n getGuid () {\n let guid = null\n if (isValueValid(this.gcookie)) {\n return this.gcookie\n }\n if (StorageManager._isLocalStorageSupported()) {\n const value = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(value)) {\n try {\n guid = JSON.parse(decodeURIComponent(value))\n } catch (e) {\n this.#logger.debug('Cannot parse Gcookie from localstorage - must be encoded ' + value)\n // assumming guids are of size 32. supporting both formats.\n // guid can have encodedURIComponent or be without it.\n // 1.56e4078ed15749928c042479ec2b4d47 - breaks on JSON.parse(decodeURIComponent())\n // 2.%2256e4078ed15749928c042479ec2b4d47%22\n if (value.length === 32) {\n guid = value\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, value)\n } else {\n this.#logger.error('Illegal guid ' + value)\n }\n }\n\n // Persist to cookie storage if not present there.\n if (isValueValid(guid)) {\n StorageManager.createBroadCookie(GCOOKIE_NAME, guid, COOKIE_EXPIRY, window.location.hostname)\n }\n }\n }\n\n if (!isValueValid(guid)) {\n guid = StorageManager.readCookie(GCOOKIE_NAME)\n if (isValueValid(guid) && (guid.indexOf('%') === 0 || guid.indexOf('\\'') === 0 || guid.indexOf('\"') === 0)) {\n guid = null\n }\n if (isValueValid(guid)) {\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, guid)\n }\n }\n\n return guid\n }\n}\n","export const DATA_NOT_SENT_TEXT = 'This property has been ignored.'\nexport const INVALID_ACCOUNT = 'Invalid account ID'\nexport const INVALID_EVENT = 'Event structure not valid. Unable to process event'\nexport const CLEVERTAP_ERROR_PREFIX = 'CleverTap error:' // Formerly wzrk_error_txt\nexport const EMBED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Incorrect embed script.`\nexport const EVENT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Event structure not valid. ${DATA_NOT_SENT_TEXT}`\nexport const GENDER_ERROR = `${CLEVERTAP_ERROR_PREFIX} Gender value should one of the following: m,f,o,u,male,female,unknown,others (case insensitive). ${DATA_NOT_SENT_TEXT}`\nexport const EMPLOYED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Employed value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const MARRIED_ERROR = `${CLEVERTAP_ERROR_PREFIX} Married value should be either Y or N. ${DATA_NOT_SENT_TEXT}`\nexport const EDUCATION_ERROR = `${CLEVERTAP_ERROR_PREFIX} Education value should be either School, College or Graduate. ${DATA_NOT_SENT_TEXT}`\nexport const AGE_ERROR = `${CLEVERTAP_ERROR_PREFIX} Age value should be a number. ${DATA_NOT_SENT_TEXT}`\nexport const DOB_ERROR = `${CLEVERTAP_ERROR_PREFIX} DOB value should be a Date Object`\nexport const OBJECT_ARRAY_ERROR = `${CLEVERTAP_ERROR_PREFIX} Expecting Object array in profile`\nexport const DATE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setDate(number). number should be formatted as yyyymmdd`\nexport const ENUM_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} setEnum(value). value should be a string or a number`\nexport const PHONE_FORMAT_ERROR = `${CLEVERTAP_ERROR_PREFIX} Phone number should be formatted as +[country code][number]`\n","import { isObject, isDateObject, isString, isNumber } from './datatypes'\nimport { convertToWZRKDate } from './datetime'\nimport { CHARGED_ID, CHARGEDID_COOKIE_NAME } from './constants'\nimport { StorageManager } from './storage'\n\nlet _globalChargedId\n\nexport const isEventStructureFlat = (eventObj) => {\n // Events cannot have nested structure or Arrays\n if (isObject(eventObj)) {\n for (var key in eventObj) {\n if (eventObj.hasOwnProperty(key)) {\n if (isObject(eventObj[key]) || Array.isArray(eventObj[key])) {\n return false\n } else if (isDateObject(eventObj[key])) {\n eventObj[key] = convertToWZRKDate(eventObj[key])\n }\n }\n }\n return true\n }\n return false\n}\n\nexport const isChargedEventStructureValid = (chargedObj, logger) => {\n if (isObject(chargedObj)) {\n for (var key in chargedObj) {\n if (chargedObj.hasOwnProperty(key)) {\n if (key === 'Items') {\n if (!Array.isArray(chargedObj[key])) {\n return false\n }\n\n if (chargedObj[key].length > 50) {\n logger.reportError(522, 'Charged Items exceed 50 limit. Actual count: ' + chargedObj[key].length)\n }\n\n for (var itemKey in chargedObj[key]) {\n if (chargedObj[key].hasOwnProperty(itemKey)) { // since default array implementation could be overridden - e.g. Teabox site\n if (!isObject(chargedObj[key][itemKey]) || !isEventStructureFlat(chargedObj[key][itemKey])) {\n return false\n }\n }\n }\n } else {\n if (isObject(chargedObj[key]) || Array.isArray(chargedObj[key])) {\n return false\n } else if (isDateObject(chargedObj[key])) {\n chargedObj[key] = convertToWZRKDate(chargedObj[key])\n }\n }\n }\n }\n\n if (isString(chargedObj[CHARGED_ID]) || isNumber(chargedObj[CHARGED_ID])) {\n // save charged Id\n const chargedId = chargedObj[CHARGED_ID] + '' // casting chargedId to string\n\n if (typeof _globalChargedId === 'undefined') {\n _globalChargedId = StorageManager.readFromLSorCookie(CHARGEDID_COOKIE_NAME)\n }\n if (typeof _globalChargedId !== 'undefined' && _globalChargedId.trim() === chargedId.trim()) {\n // drop event- duplicate charged id\n logger.error('Duplicate charged Id - Dropped' + chargedObj)\n return false\n }\n _globalChargedId = chargedId\n StorageManager.saveToLSorCookie(CHARGEDID_COOKIE_NAME, chargedId)\n }\n return true\n } // if object (chargedObject)\n return false\n}\n","import { isString, isObject, sanitize } from '../util/datatypes'\nimport { EVENT_ERROR } from '../util/messages'\nimport { ACCOUNT_ID, EV_COOKIE, SYSTEM_EVENTS, unsupportedKeyCharRegex } from '../util/constants'\nimport { isChargedEventStructureValid, isEventStructureFlat } from '../util/validator'\nimport { StorageManager, $ct } from '../util/storage'\n\nexport default class EventHandler extends Array {\n #logger\n #oldValues\n #request\n #isPersonalisationActive\n\n constructor ({ logger, request, isPersonalisationActive }, values) {\n super()\n this.#logger = logger\n this.#oldValues = values\n this.#request = request\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...eventsArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processEventArray(eventsArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processEventArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processEventArray (eventsArr) {\n if (Array.isArray(eventsArr)) {\n while (eventsArr.length > 0) {\n var eventName = eventsArr.shift()\n if (!isString(eventName)) {\n this.#logger.error(EVENT_ERROR)\n continue\n }\n\n if (eventName.length > 1024) {\n eventName = eventName.substring(0, 1024)\n this.#logger.reportError(510, eventName + '... length exceeded 1024 chars. Trimmed.')\n }\n\n if (SYSTEM_EVENTS.includes(eventName)) {\n this.#logger.reportError(513, eventName + ' is a restricted system event. It cannot be used as an event name.')\n continue\n }\n\n const data = {}\n data.type = 'event'\n data.evtName = sanitize(eventName, unsupportedKeyCharRegex)\n\n if (eventsArr.length !== 0) {\n const eventObj = eventsArr.shift()\n if (!isObject(eventObj)) {\n // put it back if it is not an object\n eventsArr.unshift(eventObj)\n } else {\n // check Charged Event vs. other events.\n if (eventName === 'Charged') {\n if (!isChargedEventStructureValid(eventObj, this.#logger)) {\n this.#logger.reportError(511, 'Charged event structure invalid. Not sent.')\n continue\n }\n } else {\n if (!isEventStructureFlat(eventObj)) {\n this.#logger.reportError(512, eventName + ' event structure invalid. Not sent.')\n continue\n }\n }\n data.evtData = eventObj\n }\n }\n\n this.#request.processEvent(data)\n }\n }\n }\n\n getDetails (evtName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n }\n if (typeof $ct.globalEventsMap === 'undefined') {\n return\n }\n const evtObj = $ct.globalEventsMap[evtName]\n const respObj = {}\n if (typeof evtObj !== 'undefined') {\n respObj.firstTime = new Date(evtObj[1] * 1000)\n respObj.lastTime = new Date(evtObj[2] * 1000)\n respObj.count = evtObj[0]\n return respObj\n }\n }\n}\n","export const getURLParams = (url) => {\n const urlParams = {}\n const idx = url.indexOf('?')\n\n if (idx > 1) {\n const uri = url.substring(idx + 1)\n let match\n const pl = /\\+/g // Regex for replacing addition symbol with a space\n const search = /([^&=]+)=?([^&]*)/g\n const decode = function (s) {\n let replacement = s.replace(pl, ' ')\n try {\n replacement = decodeURIComponent(replacement)\n } catch (e) {\n // eat\n }\n return replacement\n }\n match = search.exec(uri)\n while (match) {\n urlParams[decode(match[1])] = decode(match[2])\n match = search.exec(uri)\n }\n }\n return urlParams\n}\n\nexport const getDomain = (url) => {\n if (url === '') return ''\n var a = document.createElement('a')\n a.href = url\n return a.hostname\n}\n\nexport const addToURL = (url, k, v) => {\n return url + '&' + k + '=' + encodeURIComponent(v)\n}\n\nexport const getHostName = () => {\n return window.location.hostname\n}\n","/* eslint-disable */\nexport const urlBase64ToUint8Array = (base64String) => {\n let padding = '='.repeat((4 - base64String.length % 4) % 4)\n let base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/')\n\n let rawData = window.atob(base64)\n let processedData = []\n for (let i=0; i {\n logger && typeof logger.debug === 'function' && logger.debug('dobj:' + dataObject)\n return compressToBase64(dataObject)\n}\n\nexport const compress = (uncompressed) => {\n if (uncompressed == null) return ''\n let i, value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_string = '',\n context_data_val = 0,\n context_data_position = 0,\n ii,\n f = String.fromCharCode\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0;\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == 15) {\n context_data_position = 0\n context_data_string += f(context_data_val)\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1)\n if (context_data_position == 15) {\n context_data_string += f(context_data_val)\n break\n } else context_data_position++\n }\n return context_data_string\n}\n\nexport const getKeyStr = () => {\n let key = ''\n let i = 0\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 65)\n }\n\n for (i = 0; i <= 25; i++) {\n key = key + String.fromCharCode(i + 97)\n }\n\n for (i = 0; i < 10; i++) {\n key = key + i\n }\n\n return key + '+/='\n}\n\nconst _keyStr = getKeyStr()\n\nexport const convertToFormattedHex = (byte_arr) => {\n let hex_str = '',\n i,\n len,\n tmp_hex\n\n if (!Array.isArray(byte_arr)) {\n return false\n }\n\n len = byte_arr.length\n\n for (i = 0; i < len; ++i) {\n if (byte_arr[i] < 0) {\n byte_arr[i] = byte_arr[i] + 256\n }\n if (byte_arr[i] === undefined) {\n byte_arr[i] = 0\n }\n tmp_hex = byte_arr[i].toString(16)\n\n if (tmp_hex.length == 1) tmp_hex = '0' + tmp_hex // Add leading zero.\n\n // beautification - needed if you're printing this in the console, else keep commented\n // if ((i + 1) % 16 === 0) {\n // tmp_hex += \"\\n\";\n // } else {\n // tmp_hex += \" \";\n // }\n\n hex_str += tmp_hex\n }\n\n return hex_str.trim()\n}\n\nexport const convertStringToHex = (s) => {\n let byte_arr = []\n for (let i = 0; i < s.length; i++) {\n let value = s.charCodeAt(i)\n byte_arr.push(value & 255)\n byte_arr.push((value >> 8) & 255)\n }\n return convertToFormattedHex(byte_arr)\n}\n\nexport const compressToBase64 = (input) => {\n if (input == null) return ''\n var output = ''\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\n var i = 0\n\n input = compress(input)\n\n while (i < input.length * 2) {\n\n if (i % 2 == 0) {\n chr1 = input.charCodeAt(i / 2) >> 8\n chr2 = input.charCodeAt(i / 2) & 255\n if (i / 2 + 1 < input.length)\n chr3 = input.charCodeAt(i / 2 + 1) >> 8\n else\n chr3 = NaN\n } else {\n chr1 = input.charCodeAt((i - 1) / 2) & 255\n if ((i + 1) / 2 < input.length) {\n chr2 = input.charCodeAt((i + 1) / 2) >> 8\n chr3 = input.charCodeAt((i + 1) / 2) & 255\n } else\n chr2 = chr3 = NaN\n }\n i += 3\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\n enc4 = chr3 & 63\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64\n } else if (isNaN(chr3)) {\n enc4 = 64\n }\n\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4)\n\n }\n\n return output\n}\n","\nimport { ARP_COOKIE, MAX_TRIES, OPTOUT_COOKIE_ENDSWITH, USEIP_KEY, MAX_DELAY_FREQUENCY, PUSH_DELAY_MS, WZRK_FETCH } from './constants'\nimport { isString, isValueValid } from './datatypes'\nimport { compressData } from './encoder'\nimport { StorageManager, $ct } from './storage'\nimport { addToURL } from './url'\n\nexport default class RequestDispatcher {\n static logger\n static device\n static account\n networkRetryCount = 0\n minDelayFrequency = 0\n\n // ANCHOR - Requests get fired from here\n static #fireRequest (url, tries, skipARP, sendOULFlag, evtName) {\n if (this.#dropRequestDueToOptOut()) {\n this.logger.debug('req dropped due to optout cookie: ' + this.device.gcookie)\n return\n }\n\n // set a request in progress\n // so that if gcookie is not present, no other request can be made asynchronusly\n if (!isValueValid(this.device.gcookie)) {\n $ct.blockRequest = true\n }\n /**\n * if the gcookie is null\n * and the request is not the first request\n * and the tries are less than max tries\n * keep retrying\n */\n\n if (evtName && evtName === WZRK_FETCH) {\n // New retry mechanism\n if (!isValueValid(this.device.gcookie) && ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1)) {\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${this.networkRetryCount}`)\n this.#fireRequest(url, undefined, skipARP, sendOULFlag)\n }, this.getDelayFrequency())\n }\n } else {\n if (!isValueValid(this.device.gcookie) &&\n ($ct.globalCache.RESP_N < $ct.globalCache.REQ_N - 1) &&\n tries < MAX_TRIES) {\n // if ongoing First Request is in progress, initiate retry\n setTimeout(() => {\n this.logger.debug(`retrying fire request for url: ${url}, tries: ${tries}`)\n this.#fireRequest(url, tries + 1, skipARP, sendOULFlag)\n }, 50)\n return\n }\n }\n\n // set isOULInProgress to true\n // when sendOULFlag is set to true\n if (!sendOULFlag) {\n if (isValueValid(this.device.gcookie)) {\n // add gcookie to url\n url = addToURL(url, 'gc', this.device.gcookie)\n }\n url = this.#addARPToRequest(url, skipARP)\n } else {\n window.isOULInProgress = true\n }\n\n url = addToURL(url, 'tries', tries) // Add tries to URL\n\n url = this.#addUseIPToRequest(url)\n url = addToURL(url, 'r', new Date().getTime()) // add epoch to beat caching of the URL\n // TODO: Figure out a better way to handle plugin check\n if (window.clevertap?.hasOwnProperty('plugin') || window.wizrocket?.hasOwnProperty('plugin')) {\n // used to add plugin name in request parameter\n const plugin = window.clevertap.plugin || window.wizrocket.plugin\n url = addToURL(url, 'ct_pl', plugin)\n }\n if (url.indexOf('chrome-extension:') !== -1) {\n url = url.replace('chrome-extension:', 'https:')\n }\n // TODO: Try using Function constructor instead of appending script.\n var ctCbScripts = document.getElementsByClassName('ct-jp-cb')\n while (ctCbScripts[0] && ctCbScripts[0].parentNode) {\n ctCbScripts[0].parentNode.removeChild(ctCbScripts[0])\n }\n const s = document.createElement('script')\n s.setAttribute('type', 'text/javascript')\n s.setAttribute('src', url)\n s.setAttribute('class', 'ct-jp-cb')\n s.setAttribute('rel', 'nofollow')\n s.async = true\n document.getElementsByTagName('head')[0].appendChild(s)\n this.logger.debug('req snt -> url: ' + url)\n }\n\n /**\n *\n * @param {string} url\n * @param {*} skipARP\n * @param {boolean} sendOULFlag\n */\n static fireRequest (url, skipARP, sendOULFlag, evtName) {\n this.#fireRequest(url, 1, skipARP, sendOULFlag, evtName)\n }\n\n static #dropRequestDueToOptOut () {\n if ($ct.isOptInRequest || !isValueValid(this.device.gcookie) || !isString(this.device.gcookie)) {\n $ct.isOptInRequest = false\n return false\n }\n return this.device.gcookie.slice(-3) === OPTOUT_COOKIE_ENDSWITH\n }\n\n static #addUseIPToRequest (pageLoadUrl) {\n var useIP = StorageManager.getMetaProp(USEIP_KEY)\n if (typeof useIP !== 'boolean') {\n useIP = false\n }\n return addToURL(pageLoadUrl, USEIP_KEY, useIP ? 'true' : 'false')\n };\n\n static #addARPToRequest (url, skipResARP) {\n if (skipResARP === true) {\n const _arp = {}\n _arp.skipResARP = true\n return addToURL(url, 'arp', compressData(JSON.stringify(_arp), this.logger))\n }\n if (StorageManager._isLocalStorageSupported() && typeof localStorage.getItem(ARP_COOKIE) !== 'undefined' && localStorage.getItem(ARP_COOKIE) !== null) {\n return addToURL(url, 'arp', compressData(JSON.stringify(StorageManager.readFromLSorCookie(ARP_COOKIE)), this.logger))\n }\n return url\n }\n\n getDelayFrequency () {\n this.logger.debug('Network retry #' + this.networkRetryCount)\n\n // Retry with delay as 1s for first 10 retries\n if (this.networkRetryCount < 10) {\n this.logger.debug(this.account.id, 'Failure count is ' + this.networkRetryCount + '. Setting delay frequency to 1s')\n this.minDelayFrequency = PUSH_DELAY_MS // Reset minimum delay to 1s\n return this.minDelayFrequency\n }\n\n if (this.account.region == null) {\n // Retry with delay as 1s if region is null in case of eu1\n this.logger.debug(this.account.id, 'Setting delay frequency to 1s')\n return PUSH_DELAY_MS\n } else {\n // Retry with delay as minimum delay frequency and add random number of seconds to scatter traffic\n const randomDelay = (Math.floor(Math.random() * 10) + 1) * 1000\n this.minDelayFrequency += randomDelay\n if (this.minDelayFrequency < MAX_DELAY_FREQUENCY) {\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n } else {\n this.minDelayFrequency = PUSH_DELAY_MS\n }\n this.logger.debug(this.account.id, 'Setting delay frequency to ' + this.minDelayFrequency)\n return this.minDelayFrequency\n }\n }\n}\n","// CleverTap specific utilities\n\nimport {\n StorageManager,\n $ct\n} from './storage'\nimport {\n CAMP_COOKIE_NAME,\n singleQuoteRegex,\n PR_COOKIE,\n ARP_COOKIE,\n GCOOKIE_NAME,\n IS_OUL,\n categoryLongKey,\n CAMP_COOKIE_G,\n GLOBAL\n} from './constants'\nimport {\n GENDER_ERROR,\n EMPLOYED_ERROR,\n MARRIED_ERROR,\n EDUCATION_ERROR,\n AGE_ERROR,\n DOB_ERROR,\n PHONE_FORMAT_ERROR,\n ENUM_FORMAT_ERROR\n} from './messages'\nimport {\n getToday,\n convertToWZRKDate,\n setDate,\n getNow\n} from './datetime'\nimport {\n isObject,\n isDateObject,\n isConvertibleToNumber,\n isObjectEmpty,\n isString,\n isNumber,\n isValueValid\n} from './datatypes'\n\nimport { addToURL, getURLParams } from './url'\nimport { compressData } from './encoder'\nimport RequestDispatcher from './requestDispatcher'\n\nexport const getCampaignObject = () => {\n let finalcampObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let campObj = StorageManager.read(CAMP_COOKIE_NAME)\n if (campObj != null) {\n campObj = JSON.parse(decodeURIComponent(campObj).replace(singleQuoteRegex, '\\\"'))\n if (campObj.hasOwnProperty('global')) {\n finalcampObj.wp = campObj\n } else {\n finalcampObj = campObj\n }\n } else {\n finalcampObj = {}\n }\n }\n return finalcampObj\n}\n\nexport const saveCampaignObject = (campaignObj) => {\n if (StorageManager._isLocalStorageSupported()) {\n const newObj = { ...getCampaignObject(), ...campaignObj }\n const campObj = JSON.stringify(newObj)\n StorageManager.save(CAMP_COOKIE_NAME, encodeURIComponent(campObj))\n // Update the CAMP_COOKIE_G to be in sync with CAMP_COOKIE_NAME\n setCampaignObjectForGuid()\n }\n}\n\n// set Campaign Object against the guid, with daily count and total count details\nexport const setCampaignObjectForGuid = () => {\n if (StorageManager._isLocalStorageSupported()) {\n let guid = StorageManager.read(GCOOKIE_NAME)\n if (isValueValid(guid)) {\n try {\n guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n const guidCampObj = StorageManager.read(CAMP_COOKIE_G) ? JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G))) : {}\n if (guid && StorageManager._isLocalStorageSupported()) {\n var finalCampObj = {}\n var campObj = getCampaignObject()\n Object.keys(campObj).forEach(key => {\n const campKeyObj = (guid in guidCampObj && Object.keys(guidCampObj[guid]).length && guidCampObj[guid][key]) ? guidCampObj[guid][key] : {}\n const globalObj = campObj[key].global\n const today = getToday()\n const dailyObj = campObj[key][today]\n if (typeof globalObj !== 'undefined') {\n const campaignIdArray = Object.keys(globalObj)\n for (const index in campaignIdArray) {\n let resultObj = []\n if (campaignIdArray.hasOwnProperty(index)) {\n let dailyC = 0\n let totalC = 0\n const campaignId = campaignIdArray[index]\n if (campaignId === 'tc') {\n continue\n }\n if (typeof dailyObj !== 'undefined' && typeof dailyObj[campaignId] !== 'undefined') {\n dailyC = dailyObj[campaignId]\n }\n if (typeof globalObj !== 'undefined' && typeof globalObj[campaignId] !== 'undefined') {\n totalC = globalObj[campaignId]\n }\n resultObj = [campaignId, dailyC, totalC]\n campKeyObj[campaignId] = resultObj\n }\n }\n }\n finalCampObj = { ...finalCampObj, [key]: campKeyObj }\n })\n guidCampObj[guid] = finalCampObj\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n } catch (e) {\n console.error('Invalid clevertap Id ' + e)\n }\n }\n }\n}\nexport const getCampaignObjForLc = () => {\n // before preparing data to send to LC , check if the entry for the guid is already there in CAMP_COOKIE_G\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n\n let campObj = {}\n if (StorageManager._isLocalStorageSupported()) {\n let resultObj = {}\n campObj = getCampaignObject()\n const storageValue = StorageManager.read(CAMP_COOKIE_G)\n const decodedValue = storageValue ? decodeURIComponent(storageValue) : null\n const parsedValue = decodedValue ? JSON.parse(decodedValue) : null\n\n const resultObjWP = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wp)\n ? Object.values(parsedValue[guid].wp)\n : []\n\n const resultObjWI = (!!guid &&\n storageValue !== undefined && storageValue !== null &&\n parsedValue && parsedValue[guid] && parsedValue[guid].wi)\n ? Object.values(parsedValue[guid].wi)\n : []\n\n const today = getToday()\n let todayCwp = 0\n let todayCwi = 0\n if (campObj.wp && campObj.wp[today] && campObj.wp[today].tc !== 'undefined') {\n todayCwp = campObj.wp[today].tc\n }\n if (campObj.wi && campObj.wi[today] && campObj.wi[today].tc !== 'undefined') {\n todayCwi = campObj.wi[today].tc\n }\n resultObj = {\n wmp: todayCwp,\n wimp: todayCwi,\n tlc: resultObjWP,\n witlc: resultObjWI\n }\n return resultObj\n }\n}\n\nexport const isProfileValid = (profileObj, { logger }) => {\n let valid = false\n if (isObject(profileObj)) {\n for (const profileKey in profileObj) {\n if (profileObj.hasOwnProperty(profileKey)) {\n valid = true\n let profileVal = profileObj[profileKey]\n\n if (profileVal == null) {\n delete profileObj[profileKey]\n continue\n }\n if (profileKey === 'Gender' && !profileVal.match(/\\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\\b/)) {\n valid = false\n logger.error(GENDER_ERROR)\n }\n\n if (profileKey === 'Employed' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(EMPLOYED_ERROR)\n }\n\n if (profileKey === 'Married' && !profileVal.match(/^Y$|^N$/)) {\n valid = false\n logger.error(MARRIED_ERROR)\n }\n\n if (profileKey === 'Education' && !profileVal.match(/^School$|^College$|^Graduate$/)) {\n valid = false\n logger.error(EDUCATION_ERROR)\n }\n\n if (profileKey === 'Age' && profileVal != null) {\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Age = +profileVal\n } else {\n valid = false\n logger.error(AGE_ERROR)\n }\n }\n // dob will come in like this - $dt_19470815 or dateObject\n if (profileKey === 'DOB') {\n if (((!(/^\\$D_/).test(profileVal) || (profileVal + '').length !== 11)) && !isDateObject(profileVal)) {\n valid = false\n logger.error(DOB_ERROR)\n }\n\n if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n } else if (isDateObject(profileVal)) {\n profileObj[profileKey] = convertToWZRKDate(profileVal)\n }\n\n if (profileKey === 'Phone' && !isObjectEmpty(profileVal)) {\n if (profileVal.length > 8 && (profileVal.charAt(0) === '+')) { // valid phone number\n profileVal = profileVal.substring(1, profileVal.length)\n if (isConvertibleToNumber(profileVal)) {\n profileObj.Phone = +profileVal\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n } else {\n valid = false\n logger.error(PHONE_FORMAT_ERROR + '. Removed.')\n }\n }\n\n if (!valid) {\n delete profileObj[profileKey]\n }\n }\n }\n }\n return valid\n}\n\nexport const processFBUserObj = (user) => {\n const profileData = {}\n profileData.Name = user.name\n if (user.id != null) {\n profileData.FBID = user.id + ''\n }\n // Feb 2014 - FB announced over 58 gender options, hence we specifically look for male or female. Rest we don't care.\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else {\n profileData.Gender = 'O'\n }\n\n const getHighestEducation = function (eduArr) {\n if (eduArr != null) {\n let college = ''\n let highschool = ''\n\n for (let i = 0; i < eduArr.length; i++) {\n const edu = eduArr[i]\n if (edu.type != null) {\n const type = edu.type\n if (type === 'Graduate School') {\n return 'Graduate'\n } else if (type === 'College') {\n college = '1'\n } else if (type === 'High School') {\n highschool = '1'\n }\n }\n }\n\n if (college === '1') {\n return 'College'\n } else if (highschool === '1') {\n return 'School'\n }\n }\n }\n\n if (user.relationship_status != null) {\n profileData.Married = 'N'\n if (user.relationship_status === 'Married') {\n profileData.Married = 'Y'\n }\n }\n\n const edu = getHighestEducation(user.education)\n if (edu != null) {\n profileData.Education = edu\n }\n\n const work = (user.work != null) ? user.work.length : 0\n if (work > 0) {\n profileData.Employed = 'Y'\n } else {\n profileData.Employed = 'N'\n }\n\n if (user.email != null) {\n profileData.Email = user.email\n }\n\n if (user.birthday != null) {\n const mmddyy = user.birthday.split('/') // comes in as \"08/15/1947\"\n profileData.DOB = setDate(mmddyy[2] + mmddyy[0] + mmddyy[1])\n }\n return profileData\n}\n\nexport const processGPlusUserObj = (user, { logger }) => {\n const profileData = {}\n if (user.displayName != null) {\n profileData.Name = user.displayName\n }\n if (user.id != null) {\n profileData.GPID = user.id + ''\n }\n\n if (user.gender != null) {\n if (user.gender === 'male') {\n profileData.Gender = 'M'\n } else if (user.gender === 'female') {\n profileData.Gender = 'F'\n } else if (user.gender === 'other') {\n profileData.Gender = 'O'\n }\n }\n\n if (user.image != null) {\n if (user.image.isDefault === false) {\n profileData.Photo = user.image.url.split('?sz')[0]\n }\n }\n\n if (user.emails != null) {\n for (let emailIdx = 0; emailIdx < user.emails.length; emailIdx++) {\n const emailObj = user.emails[emailIdx]\n if (emailObj.type === 'account') {\n profileData.Email = emailObj.value\n }\n }\n }\n\n if (user.organizations != null) {\n profileData.Employed = 'N'\n for (let i = 0; i < user.organizations.length; i++) {\n const orgObj = user.organizations[i]\n if (orgObj.type === 'work') {\n profileData.Employed = 'Y'\n }\n }\n }\n\n if (user.birthday != null) {\n const yyyymmdd = user.birthday.split('-') // comes in as \"1976-07-27\"\n profileData.DOB = setDate(yyyymmdd[0] + yyyymmdd[1] + yyyymmdd[2])\n }\n\n if (user.relationshipStatus != null) {\n profileData.Married = 'N'\n if (user.relationshipStatus === 'married') {\n profileData.Married = 'Y'\n }\n }\n logger.debug('gplus usr profile ' + JSON.stringify(profileData))\n\n return profileData\n}\n\nexport const addToLocalProfileMap = (profileObj, override) => {\n if (StorageManager._isLocalStorageSupported()) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = {}\n }\n }\n\n // Move props from custom bucket to outside.\n if (profileObj._custom != null) {\n const keys = profileObj._custom\n for (const key in keys) {\n if (keys.hasOwnProperty(key)) {\n profileObj[key] = keys[key]\n }\n }\n delete profileObj._custom\n }\n\n for (const prop in profileObj) {\n if (profileObj.hasOwnProperty(prop)) {\n if ($ct.globalProfileMap.hasOwnProperty(prop) && !override) {\n continue\n }\n $ct.globalProfileMap[prop] = profileObj[prop]\n }\n }\n if ($ct.globalProfileMap._custom != null) {\n delete $ct.globalProfileMap._custom\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n }\n}\n\nexport const closeIframe = (campaignId, divIdIgnored, currentSessionId) => {\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n if ($ct.campaignDivMap != null) {\n const divId = $ct.campaignDivMap[campaignId]\n if (divId != null) {\n document.getElementById(divId).remove()\n if (divId === 'intentPreview') {\n if (document.getElementById('intentOpacityDiv') != null) {\n document.getElementById('intentOpacityDiv').remove()\n }\n } else if (divId === 'wizParDiv0') {\n if (document.getElementById('intentOpacityDiv0') != null) {\n document.getElementById('intentOpacityDiv0').remove()\n }\n } else if (divId === 'wizParDiv2') {\n if (document.getElementById('intentOpacityDiv2') != null) {\n document.getElementById('intentOpacityDiv2').remove()\n }\n }\n }\n }\n}\n\nexport const arp = (jsonMap) => {\n // For unregister calls dont set arp in LS\n if (jsonMap.skipResARP != null && jsonMap.skipResARP) {\n console.debug('Update ARP Request rejected', jsonMap)\n return null\n }\n\n const isOULARP = jsonMap[IS_OUL] === true\n\n if (StorageManager._isLocalStorageSupported()) {\n // Update arp only if it is null or an oul request\n try {\n let arpFromStorage = StorageManager.readFromLSorCookie(ARP_COOKIE)\n if (arpFromStorage == null || isOULARP) {\n arpFromStorage = {}\n for (const key in jsonMap) {\n if (jsonMap.hasOwnProperty(key)) {\n if (jsonMap[key] === -1) {\n delete arpFromStorage[key]\n } else {\n arpFromStorage[key] = jsonMap[key]\n }\n }\n }\n StorageManager.saveToLSorCookie(ARP_COOKIE, arpFromStorage)\n }\n } catch (e) {\n console.error('Unable to parse ARP JSON: ' + e)\n }\n }\n}\n\nexport const getWrappedLink = (link, targetId, type, request, account, logger) => {\n let data = {}\n data.sendTo = link\n data.targetId = targetId\n data.epoch = getNow()\n\n if (type != null) {\n data.type = type\n } else {\n data.type = 'view'\n }\n\n data = request.addSystemDataToObject(data, undefined)\n return addToURL(account.recorderURL, 'd', compressData(JSON.stringify(data), logger))\n}\n\nexport const getMessageTemplate = () => {\n return `\n
`\n}\n\nexport const getMessageHeadTemplate = () => {\n return `\n \n \n \n \n `\n}\n\nexport const setEnum = (enumVal, logger) => {\n if (isString(enumVal) || isNumber(enumVal)) {\n return '$E_' + enumVal\n }\n logger.error(ENUM_FORMAT_ERROR)\n}\nexport const handleEmailSubscription = (subscription, reEncoded, fetchGroups, account, logger) => {\n const urlParamsAsIs = getURLParams(location.href) // can't use url_params as it is in lowercase above\n const encodedEmailId = urlParamsAsIs.e\n const encodedProfileProps = urlParamsAsIs.p\n const pageType = urlParamsAsIs.page_type\n\n if (typeof encodedEmailId !== 'undefined') {\n const data = {}\n data.id = account.id // accountId\n data.unsubGroups = $ct.unsubGroups // unsubscribe groups\n\n if ($ct.updatedCategoryLong) {\n data[categoryLongKey] = $ct.updatedCategoryLong\n }\n\n let url = account.emailURL\n if (fetchGroups) {\n url = addToURL(url, 'fetchGroups', fetchGroups)\n }\n if (reEncoded) {\n url = addToURL(url, 'encoded', reEncoded)\n }\n url = addToURL(url, 'e', encodedEmailId)\n url = addToURL(url, 'd', compressData(JSON.stringify(data), logger))\n if (encodedProfileProps) {\n url = addToURL(url, 'p', encodedProfileProps)\n }\n\n if (subscription !== '-1') {\n url = addToURL(url, 'sub', subscription)\n }\n\n if (pageType) {\n $ct.globalUnsubscribe = pageType === GLOBAL\n url = addToURL(url, 'page_type', pageType)\n }\n RequestDispatcher.fireRequest(url)\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\nimport {\n ACCOUNT_ID,\n COMMAND_DELETE,\n COMMAND_INCREMENT,\n EVT_PUSH,\n PR_COOKIE\n} from '../util/constants'\nimport {\n addToURL\n} from '../util/url'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport { compressData } from '../util/encoder'\nexport default class ProfileHandler extends Array {\n #logger\n #request\n #account\n #oldValues\n #isPersonalisationActive\n\n constructor ({\n logger,\n request,\n account,\n isPersonalisationActive\n }, values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n push (...profilesArr) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#processProfileArray(profilesArr)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processProfileArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n getAttribute (propName) {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap != null) {\n return $ct.globalProfileMap[propName]\n }\n }\n\n #processProfileArray (profileArr) {\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (!isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n }\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {number} value\n * @param {string} command\n * increases or decreases value of the number type properties in profile object\n */\n _handleIncrementDecrementValue (key, value, command) {\n // Check if the value is greater than 0\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if ($ct.globalProfileMap == null && !$ct.globalProfileMap?.hasOwnProperty(key)) {\n // Check if the profile map already has the propery defined\n console.error('Kindly create profile with required proprty to increment/decrement.')\n } else if (!value || typeof value !== 'number' || value <= 0) {\n console.error('Value should be a number greater than 0')\n } else {\n // Update the profile property in local storage\n if (command === COMMAND_INCREMENT) {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] + value\n } else {\n $ct.globalProfileMap[key] = $ct.globalProfileMap[key] - value\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n profileObj[key] = { [command]: value }\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n }\n\n /**\n *\n * @param {any} key\n * @param {array} arrayVal\n * @param {string} command\n * overwrites/sets new value(s) against a key/property in profile object\n */\n _handleMultiValueSet (key, arrayVal, command) {\n const array = []\n for (let i = 0; i < arrayVal.length; i++) {\n if (typeof arrayVal[i] === 'number' && !array.includes(arrayVal[i])) {\n array.push(arrayVal[i])\n } else if (typeof arrayVal[i] === 'string' && !array.includes(arrayVal[i].toLowerCase())) {\n array.push(arrayVal[i].toLowerCase())\n } else {\n console.error('array supports only string or number type values')\n }\n }\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) ?? {}\n }\n $ct.globalProfileMap[key] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(key, arrayVal, command)\n }\n\n /**\n *\n * @param {any} propKey - the property name to be added in the profile object\n * @param {string, number, array} propVal - the property value to be added against the @propkey key\n * @param {string} command\n * Adds array or single value against a key/property in profile object\n */\n _handleMultiValueAdd (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n const existingValue = $ct.globalProfileMap[propKey]\n const array = Array.isArray(existingValue) ? existingValue : (existingValue != null ? [existingValue] : [])\n\n const addValue = (value) => {\n const normalizedValue = typeof value === 'number' ? value : value.toLowerCase()\n if (!array.includes(normalizedValue)) {\n array.push(normalizedValue)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(value => {\n if (typeof value === 'string' || typeof value === 'number') {\n addValue(value)\n } else {\n this.#logger.error('Array supports only string or number type values')\n }\n })\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n addValue(propVal)\n } else {\n this.#logger.error('Unsupported value type')\n return\n }\n\n $ct.globalProfileMap[propKey] = array\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string, number, array} propVal\n * @param {string} command\n * removes value(s) against a key/property in profile object\n */\n _handleMultiValueRemove (propKey, propVal, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE) || {}\n }\n\n if (!$ct.globalProfileMap.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n return\n }\n\n const removeValue = (value) => {\n const index = $ct.globalProfileMap[propKey].indexOf(value)\n if (index !== -1) {\n $ct.globalProfileMap[propKey].splice(index, 1)\n }\n }\n\n if (Array.isArray(propVal)) {\n propVal.forEach(removeValue)\n } else if (typeof propVal === 'string' || typeof propVal === 'number') {\n removeValue(propVal)\n } else {\n this.#logger.error('Unsupported propVal type')\n return\n }\n\n // Remove the key if the array is empty\n if ($ct.globalProfileMap[propKey].length === 0) {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, propVal, command)\n }\n\n /**\n *\n * @param {any} propKey\n * @param {string} command\n * deletes a key value pair from the profile object\n */\n _handleMultiValueDelete (propKey, command) {\n if ($ct.globalProfileMap == null) {\n $ct.globalProfileMap = StorageManager.readFromLSorCookie(PR_COOKIE)\n }\n if (!$ct?.globalProfileMap?.hasOwnProperty(propKey)) {\n this.#logger.error(`The property ${propKey} does not exist.`)\n } else {\n delete $ct.globalProfileMap[propKey]\n }\n StorageManager.saveToLSorCookie(PR_COOKIE, $ct.globalProfileMap)\n this.sendMultiValueData(propKey, null, command)\n }\n\n sendMultiValueData (propKey, propVal, command) {\n // Send the updated value to LC\n let data = {}\n const profileObj = {}\n data.type = 'profile'\n\n // this removes the property at backend\n profileObj[propKey] = { [command]: command === COMMAND_DELETE ? true : propVal }\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n}\n","import {\n isObject,\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n KCOOKIE_NAME,\n GCOOKIE_NAME,\n EVT_PUSH,\n LRU_CACHE_SIZE,\n IS_OUL,\n CAMP_COOKIE_NAME,\n CHARGEDID_COOKIE_NAME,\n PR_COOKIE,\n EV_COOKIE,\n ARP_COOKIE,\n CLEAR,\n META_COOKIE,\n FIRE_PUSH_UNREGISTERED\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport LRUCache from '../util/lruCache'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL,\n getHostName\n} from '../util/url'\nimport {\n isProfileValid,\n processFBUserObj,\n processGPlusUserObj,\n addToLocalProfileMap\n} from '../util/clevertap'\n\nexport default class UserLoginHandler extends Array {\n #request\n #logger\n #account\n #session\n #oldValues\n #device\n\n constructor ({\n request,\n account,\n session,\n logger,\n device\n },\n values) {\n super()\n this.#request = request\n this.#account = account\n this.#session = session\n this.#logger = logger\n this.#oldValues = values\n this.#device = device\n }\n\n // On User Login\n #processOUL (profileArr) {\n let sendOULFlag = true\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n const addToK = (ids) => {\n let k = StorageManager.readFromLSorCookie(KCOOKIE_NAME)\n const g = StorageManager.readFromLSorCookie(GCOOKIE_NAME)\n let kId\n if (k == null) {\n k = {}\n kId = ids\n } else {\n /* check if already exists */\n kId = k.id\n let anonymousUser = false\n let foundInCache = false\n if (kId == null) {\n kId = ids[0]\n anonymousUser = true\n }\n if ($ct.LRU_CACHE == null && StorageManager._isLocalStorageSupported()) {\n $ct.LRU_CACHE = new LRUCache(LRU_CACHE_SIZE)\n }\n\n if (anonymousUser) {\n if ((g) != null) {\n // if have gcookie\n $ct.LRU_CACHE.set(kId, g)\n $ct.blockRequest = false\n }\n } else {\n // check if the id is present in the cache\n // set foundInCache to true\n for (const idx in ids) {\n if (ids.hasOwnProperty(idx)) {\n const id = ids[idx]\n if ($ct.LRU_CACHE.cache[id]) {\n kId = id\n foundInCache = true\n break\n }\n }\n }\n }\n\n if (foundInCache) {\n if (kId !== $ct.LRU_CACHE.getLastKey()) {\n // New User found\n // remove the entire cache\n this.#handleCookieFromCache()\n } else {\n sendOULFlag = false\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, sendOULFlag)\n }\n const gFromCache = $ct.LRU_CACHE.get(kId)\n $ct.LRU_CACHE.set(kId, gFromCache)\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, gFromCache)\n this.#device.gcookie = gFromCache\n\n const lastK = $ct.LRU_CACHE.getSecondLastKey()\n if (StorageManager.readFromLSorCookie(FIRE_PUSH_UNREGISTERED) && lastK !== -1) {\n // CACHED OLD USER FOUND. TRANSFER PUSH TOKEN TO THIS USER\n const lastGUID = $ct.LRU_CACHE.cache[lastK]\n this.#request.unregisterTokenForGuid(lastGUID)\n }\n } else {\n if (!anonymousUser) {\n this.clear()\n } else {\n if ((g) != null) {\n this.#device.gcookie = g\n StorageManager.saveToLSorCookie(GCOOKIE_NAME, g)\n sendOULFlag = false\n }\n }\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n kId = ids[0]\n }\n }\n k.id = kId\n StorageManager.saveToLSorCookie(KCOOKIE_NAME, k)\n }\n\n if (Array.isArray(profileArr) && profileArr.length > 0) {\n for (const index in profileArr) {\n if (profileArr.hasOwnProperty(index)) {\n const outerObj = profileArr[index]\n let data = {}\n let profileObj\n if (outerObj.Site != null) { // organic data from the site\n profileObj = outerObj.Site\n if (isObjectEmpty(profileObj) || !isProfileValid(profileObj, {\n logger: this.#logger\n })) {\n return\n }\n } else if (outerObj.Facebook != null) { // fb connect data\n const FbProfileObj = outerObj.Facebook\n // make sure that the object contains any data at all\n\n if (!isObjectEmpty(FbProfileObj) && (!FbProfileObj.error)) {\n profileObj = processFBUserObj(FbProfileObj)\n }\n } else if (outerObj['Google Plus'] != null) {\n const GPlusProfileObj = outerObj['Google Plus']\n if (isObjectEmpty(GPlusProfileObj) && (!GPlusProfileObj.error)) {\n profileObj = processGPlusUserObj(GPlusProfileObj, { logger: this.#logger })\n }\n }\n if (profileObj != null && (!isObjectEmpty(profileObj))) { // profile got set from above\n data.type = 'profile'\n if (profileObj.tz == null) {\n // try to auto capture user timezone if not present\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n\n data.profile = profileObj\n const ids = []\n if (StorageManager._isLocalStorageSupported()) {\n if (profileObj.Identity) {\n ids.push(profileObj.Identity)\n }\n if (profileObj.Email) {\n ids.push(profileObj.Email)\n }\n if (profileObj.GPID) {\n ids.push('GP:' + profileObj.GPID)\n }\n if (profileObj.FBID) {\n ids.push('FB:' + profileObj.FBID)\n }\n if (ids.length > 0) {\n addToK(ids)\n }\n }\n addToLocalProfileMap(profileObj, true)\n data = this.#request.addSystemDataToObject(data, undefined)\n\n this.#request.addFlags(data)\n // Adding 'isOUL' flag in true for OUL cases which.\n // This flag tells LC to create a new arp object.\n // Also we will receive the same flag in response arp which tells to delete existing arp object.\n if (sendOULFlag) {\n data[IS_OUL] = true\n }\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n // Whenever sendOULFlag is true then dont send arp and gcookie (guid in memory in the request)\n // Also when this flag is set we will get another flag from LC in arp which tells us to delete arp\n // stored in the cache and replace it with the response arp.\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, sendOULFlag)\n }\n }\n }\n }\n }\n\n clear () {\n this.#logger.debug('clear called. Reset flag has been set.')\n this.#deleteUser()\n StorageManager.setMetaProp(CLEAR, true)\n }\n\n #handleCookieFromCache () {\n $ct.blockRequest = false\n console.debug('Block request is false')\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#session.setSessionCookieObject('')\n }\n\n #deleteUser () {\n $ct.blockRequest = true\n this.#logger.debug('Block request is true')\n $ct.globalCache = {\n gcookie: null,\n REQ_N: 0,\n RESP_N: 0\n }\n if (StorageManager._isLocalStorageSupported()) {\n delete localStorage[GCOOKIE_NAME]\n delete localStorage[KCOOKIE_NAME]\n delete localStorage[PR_COOKIE]\n delete localStorage[EV_COOKIE]\n delete localStorage[META_COOKIE]\n delete localStorage[ARP_COOKIE]\n delete localStorage[CAMP_COOKIE_NAME]\n delete localStorage[CHARGEDID_COOKIE_NAME]\n }\n StorageManager.removeCookie(GCOOKIE_NAME, $ct.broadDomain)\n StorageManager.removeCookie(CAMP_COOKIE_NAME, getHostName())\n StorageManager.removeCookie(KCOOKIE_NAME, getHostName())\n StorageManager.removeCookie(this.#session.cookieName, $ct.broadDomain)\n StorageManager.removeCookie(ARP_COOKIE, $ct.broadDomain)\n this.#device.gcookie = null\n this.#session.setSessionCookieObject('')\n }\n\n #processLoginArray (loginArr) {\n if (Array.isArray(loginArr) && loginArr.length > 0) {\n const profileObj = loginArr.pop()\n const processProfile = profileObj != null && isObject(profileObj) &&\n ((profileObj.Site != null && Object.keys(profileObj.Site).length > 0) ||\n (profileObj.Facebook != null && Object.keys(profileObj.Facebook).length > 0) ||\n (profileObj['Google Plus'] != null && Object.keys(profileObj['Google Plus']).length > 0))\n if (processProfile) {\n StorageManager.setInstantDeleteFlagInK()\n try {\n this.#processOUL([profileObj])\n } catch (e) {\n this.#logger.debug(e)\n }\n } else {\n this.#logger.error('Profile object is in incorrect format')\n }\n }\n }\n\n push (...profilesArr) {\n this.#processLoginArray(profilesArr)\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processLoginArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n}\n","import {\n getCampaignObject,\n saveCampaignObject\n} from '../clevertap'\nimport { StorageManager } from '../storage'\n\nexport class CTWebPopupImageOnly extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _target = null\n _session = null\n shadow = null\n popup = null\n container = null\n resizeObserver = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderImageOnlyPopup()\n }\n }\n\n get session () {\n return this._session || ''\n }\n\n set session (val) {\n this._session = val\n }\n\n get msgId () {\n return this.target.wzrk_id\n }\n\n get pivotId () {\n return this.target.wzrk_pivot\n }\n\n get onClickUrl () {\n return this.target.display.onClickUrl\n }\n\n renderImageOnlyPopup () {\n const campaignId = this.target.wzrk_id.split('_')[0]\n const currentSessionId = this.session.sessionId\n\n this.shadow.innerHTML = this.getImageOnlyPopupContent()\n this.popup = this.shadowRoot.getElementById('imageOnlyPopup')\n this.container = this.shadowRoot.getElementById('container')\n this.closeIcon = this.shadowRoot.getElementById('close')\n\n this.popup.addEventListener('load', this.updateImageAndContainerWidth())\n this.resizeObserver = new ResizeObserver(() => this.handleResize(this.popup, this.container))\n this.resizeObserver.observe(this.popup)\n\n this.closeIcon.addEventListener('click', () => {\n this.resizeObserver.unobserve(this.popup)\n document.getElementById('wzrkImageOnlyDiv').style.display = 'none'\n this.remove()\n if (campaignId != null && campaignId !== '-1') {\n if (StorageManager._isLocalStorageSupported()) {\n const campaignObj = getCampaignObject()\n\n let sessionCampaignObj = campaignObj.wp[currentSessionId]\n if (sessionCampaignObj == null) {\n sessionCampaignObj = {}\n campaignObj[currentSessionId] = sessionCampaignObj\n }\n sessionCampaignObj[campaignId] = 'dnd'\n saveCampaignObject(campaignObj)\n }\n }\n })\n\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n\n if (this.onClickUrl) {\n this.popup.addEventListener('click', () => {\n this.target.display.window ? window.open(this.onClickUrl, '_blank') : window.parent.location.href = this.onClickUrl\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n }\n\n handleResize (popup, container) {\n const width = this.getRenderedImageWidth(popup)\n container.style.setProperty('width', `${width}px`)\n }\n\n getImageOnlyPopupContent () {\n return `\n ${this.target.msgContent.css}\n ${this.target.msgContent.html}\n `\n }\n\n updateImageAndContainerWidth () {\n return () => {\n const width = this.getRenderedImageWidth(this.popup)\n this.popup.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('width', `${width}px`)\n this.container.style.setProperty('height', 'auto')\n this.container.style.setProperty('position', 'fixed')\n this.popup.style.setProperty('visibility', 'visible')\n this.closeIcon.style.setProperty('visibility', 'visible')\n document.getElementById('wzrkImageOnlyDiv').style.visibility = 'visible'\n }\n }\n\n getRenderedImageWidth (img) {\n const ratio = img.naturalWidth / img.naturalHeight\n return img.height * ratio\n }\n}\n","import { determineTimeStampText, greenTickSvg } from './helper'\nexport class Message extends HTMLElement {\n constructor (config, message) {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n this.config = config\n this.message = message\n this.renderMessage(message)\n }\n\n wrapper = null\n snackBar = null\n\n get pivotId () {\n return this.message.wzrk_pivot\n }\n\n get campaignId () {\n return this.message.wzrk_id\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n renderMessage (msg) {\n this.wrapper = this.createEl('div', 'messageWrapper')\n\n switch (msg.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n const message = this.prepareBasicMessage(msg.msg[0])\n this.wrapper.appendChild(message)\n }\n }\n\n const timeStamp = this.createEl('div', 'timeStamp')\n timeStamp.innerHTML = `${determineTimeStampText(msg.id.split('_')[1])}`\n if (!msg.viewed) {\n const unreadMarker = this.createEl('span', 'unreadMarker')\n timeStamp.appendChild(unreadMarker)\n }\n\n this.wrapper.appendChild(timeStamp)\n this.shadow.appendChild(this.wrapper)\n }\n\n prepareBasicMessage (msg) {\n const message = this.createEl('div', 'message')\n\n if (msg.imageUrl) {\n const imageContainer = this.addImage(msg.imageUrl, 'mainImg')\n message.appendChild(imageContainer)\n }\n const iconTitleDescWrapper = this.createEl('div', 'iconTitleDescWrapper')\n if (msg.iconUrl) {\n const iconContainer = this.addImage(msg.iconUrl, 'iconImg')\n iconTitleDescWrapper.appendChild(iconContainer)\n }\n const titleDescWrapper = this.createEl('div', 'titleDescWrapper')\n if (msg.title) {\n const title = this.createEl('div', 'title')\n title.innerText = msg.title\n titleDescWrapper.appendChild(title)\n }\n if (msg.description) {\n const description = this.createEl('div', 'description')\n description.innerText = msg.description\n titleDescWrapper.appendChild(description)\n }\n if (msg.title || msg.description) {\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n }\n\n if (msg.iconUrl || msg.title || msg.description) {\n message.appendChild(iconTitleDescWrapper)\n }\n if (msg.buttons && msg.buttons.length) {\n const buttonsContainer = this.addButtons(msg.buttons)\n message.appendChild(buttonsContainer)\n }\n return message\n }\n\n addButtons (buttons = []) {\n const buttonsContainer = this.createEl('div', 'buttonsContainer')\n let hasCopyAction = false\n buttons.forEach((b, i) => {\n const button = this.createEl('button', `button-${i}`, 'button')\n button.innerText = b.text\n if (i > 0) {\n button.style.cssText += 'margin-left: 2px;'\n }\n if (b.action === 'copy') {\n hasCopyAction = true\n }\n buttonsContainer.appendChild(button)\n })\n if (hasCopyAction) {\n this.addSnackbar(buttonsContainer)\n }\n return buttonsContainer\n }\n\n addSnackbar (buttonsContainer) {\n this.snackBar = this.createEl('div', `snackbar-${this.campaignId}`, 'snackbar')\n this.snackBar.innerHTML = greenTickSvg\n const clipboardMsg = this.createEl('span', `snackbar-msg-${this.campaignId}`, 'snackbar-msg')\n clipboardMsg.innerText = 'Copied to clipboard'\n this.snackBar.appendChild(clipboardMsg)\n buttonsContainer.appendChild(this.snackBar)\n }\n\n addImage (url, type) {\n const imageContainer = this.createEl('div', `${type}Container`)\n const image = this.createEl('img', type)\n image.setAttribute('src', url)\n // images will be fetched as and when the element comes into the viewport\n image.setAttribute('loading', 'lazy')\n imageContainer.appendChild(image)\n return imageContainer\n }\n\n raiseClickedEvent (path, isPreview) {\n switch (this.message.templateType) {\n case 'text-only':\n case 'text-with-icon':\n case 'text-with-icon-and-image': {\n this.raiseClickedForBasicTemplates(path, isPreview)\n }\n }\n }\n\n raiseClickedForBasicTemplates (path, isPreview) {\n const msg = this.message.msg[0]\n const payload = { msgId: this.campaignId, pivotId: this.pivotId }\n if (path.tagName === 'BUTTON') {\n const id = path.id.split('-')[1]\n const button = msg.buttons[id]\n payload.kv = {\n wzrk_c2a: button.text\n }\n if (button.action === 'url') {\n button.openUrlInNewTab ? window.open(button.url, '_blank') : (window.location = button.url)\n } else if (button.action === 'copy') {\n window.focus()\n navigator.clipboard.writeText(button.clipboardText)\n this.snackBar.style.setProperty('display', 'flex', 'important')\n setTimeout(() => {\n this.snackBar.style.setProperty('display', 'none', 'important')\n }, 2000)\n }\n } else if (path.tagName === 'CT-INBOX-MESSAGE' && msg.onClickUrl) {\n msg.openUrlInNewTab ? window.open(msg.onClickUrl, '_blank') : (window.location = msg.onClickUrl)\n }\n if (isPreview) {\n console.log('Notifiction clicked event will be raised at run time with payload ::', payload)\n } else {\n window.clevertap.renderNotificationClicked(payload)\n }\n }\n}\n","export const messageStyles = ({ backgroundColor, borderColor, titleColor, descriptionColor, buttonColor, buttonTextColor, unreadMarkerColor }) => {\n return `\n \n `\n}\n\nexport const inboxContainerStyles = ({\n panelBackgroundColor,\n panelBorderColor,\n headerBackgroundColor,\n headerTitleColor,\n closeIconColor,\n categoriesTabColor,\n categoriesTitleColor,\n categoriesBorderColor,\n selectedCategoryTabColor,\n selectedCategoryTitleColor,\n selectedCategoryBorderColor,\n headerCategoryHeight\n}) => {\n return `\n \n `\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Message } from './Message'\nimport { inboxContainerStyles, messageStyles } from './inboxStyles'\nimport { getInboxPosition, determineTimeStampText, arrowSvg, getInboxMessages, saveInboxMessages } from './helper'\nimport { WEBINBOX_CONFIG, MAX_INBOX_MSG } from '../../util/constants'\n\nexport class Inbox extends HTMLElement {\n constructor (logger) {\n super()\n this.logger = logger\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n isInboxOpen = false\n isInboxFromFlutter = false\n selectedCategory = null\n unviewedMessages = {}\n unviewedCounter = 0\n isPreview = false\n inboxConfigForPreview = {}\n\n // dom references\n inboxSelector = null\n inbox = null\n emptyInboxMsg = null\n inboxCard = null\n unviewedBadge = null\n observer = null\n selectedCategoryRef = null\n\n get incomingMessages () {\n return []\n }\n\n set incomingMessages (msgs = []) {\n if (msgs.length > 0) {\n this.updateInboxMessages(msgs)\n }\n }\n\n get incomingMessagesForPreview () {\n return []\n }\n\n set incomingMessagesForPreview (msgs = []) {\n const previewMsgs = {}\n if (msgs.length > 0 && this.inbox) {\n this.isPreview = true\n this.unviewedCounter = 0\n msgs.forEach((m) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n previewMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n this.buildUIForMessages(previewMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n connectedCallback () {\n this.init()\n }\n\n init () {\n this.config = this.isPreview ? this.inboxConfigForPreview : StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (Object.keys(this.config).length === 0) {\n return\n }\n this.inboxSelector = document.getElementById(this.config.inboxSelector)\n if (this.inboxSelector === null) {\n return\n }\n\n if (this.config.styles.notificationsBadge) {\n this.addUnviewedBadge()\n } else if (this.unviewedBadge) {\n this.unviewedBadge.remove()\n }\n\n this.createinbox()\n\n /**\n * We need to remove the listener as there could be a scenario where init would be called when\n * we get updated web inbox settings from LC after the inbox has been initialised.\n * It can so happen that the inbox-selector would have changed.\n */\n document.removeEventListener('click', this.addClickListenerOnDocument)\n document.addEventListener('click', this.addClickListenerOnDocument)\n this.config.categories.length && this.updateActiveCategory(this.selectedCategoryRef.innerText)\n\n this.shadow.innerHTML = this.getInboxStyles()\n this.shadow.appendChild(this.inbox)\n }\n\n addMsgsToInboxFromLS () {\n const messages = this.deleteExpiredAndGetUnexpiredMsgs(false)\n const msgIds = messages ? Object.keys(messages) : []\n if (msgIds.length === 0) {\n return\n }\n msgIds.forEach((m) => {\n if (!messages[m].viewed) {\n this.unviewedMessages[m] = messages[m]\n this.unviewedCounter++\n }\n })\n this.buildUIForMessages(messages)\n this.updateUnviewedBadgeCounter()\n }\n\n /**\n * @param {*} deleteMsgsFromUI - If this param is true, then we'll have to check the UI and delete expired messages from the DOM\n * It'll be false when you are building the inbox layout for the very first time.\n *\n * This method reads the inbox messages from LS,\n * based on the deleteMsgsFromUI flag deletes the expired messages from UI and decrements the unviewed counter if the message was not viewed,\n * sorts the messages based on the date,\n * saves the unexpired messages to LS\n * and returns the sorted unexpired messages\n *\n * Scenarios when we encounter expired messages -\n * 1. building ui for the 1st time, no need to decrement the unviewed counter as the correct count will be set at the time of rendering\n * 2. UI is already built (deleteMsgsFromUI = true) and you open the inbox\n * a. You'll find the expired msg in inbox\n * b. You'll not find the expired msg in inbox.\n * This happens when we receive new messages from LC, increment unviewed counter, save it in LS. (We build the UI only when the user opens inbox.)\n * In both the above scenarios, we'll still have to decrement the unviewed counter if the message was not viewed.\n */\n deleteExpiredAndGetUnexpiredMsgs (deleteMsgsFromUI = true) {\n let messages = getInboxMessages()\n\n const now = Math.floor(Date.now() / 1000)\n for (const msg in messages) {\n if (messages[msg].wzrk_ttl && messages[msg].wzrk_ttl > 0 && messages[msg].wzrk_ttl < now) {\n if (deleteMsgsFromUI && this.inbox) {\n const el = this.shadowRoot.getElementById(messages[msg].id)\n el && el.remove()\n if (!messages[msg].viewed) {\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n }\n }\n delete messages[msg]\n }\n }\n if (messages && messages.length > 0) {\n messages = Object.values(messages).sort((a, b) => b.date - a.date).reduce((acc, m) => { acc[m.id] = m; return acc }, {})\n }\n saveInboxMessages(messages)\n return messages\n }\n\n updateInboxMessages (msgs = []) {\n const inboxMsgs = this.deleteExpiredAndGetUnexpiredMsgs()\n const date = Date.now()\n const incomingMsgs = {}\n msgs.forEach((m, i) => {\n const key = `${m.wzrk_id.split('_')[0]}_${Date.now()}`\n m.id = key\n // We are doing this to preserve the order of the messages\n m.date = date - i\n m.viewed = 0\n inboxMsgs[key] = m\n incomingMsgs[key] = m\n this.unviewedMessages[key] = m\n this.unviewedCounter++\n })\n saveInboxMessages(inboxMsgs)\n if (this.inbox) {\n this.buildUIForMessages(incomingMsgs)\n this.updateUnviewedBadgeCounter()\n }\n }\n\n createEl (type, id, part) {\n const _el = document.createElement(type)\n _el.setAttribute('id', id)\n _el.setAttribute('part', part || id)\n return _el\n }\n\n addUnviewedBadge () {\n if (!this.unviewedBadge) {\n this.unviewedBadge = this.createEl('div', 'unviewedBadge')\n // As this unviewedBadge element will be directly added to the DOM, we are defining inline styles\n this.unviewedBadge.style.cssText = `display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ${this.config.styles.notificationsBadge.backgroundColor}; font-size: 12px; color: ${this.config.styles.notificationsBadge.textColor}; font-weight: bold; align-items: center; justify-content: center;`\n document.body.appendChild(this.unviewedBadge)\n }\n this.updateUnviewedBadgePosition()\n\n // called when user switches b/w portrait and landscape mode.\n window.addEventListener('resize', () => {\n this.updateUnviewedBadgePosition()\n })\n }\n\n updateUnviewedBadgePosition () {\n try {\n const inboxNode = document.getElementById(this.config.inboxSelector) || this.inboxSelector\n const { top, right } = inboxNode.getBoundingClientRect()\n this.unviewedBadge.style.top = `${top - 8}px`\n this.unviewedBadge.style.left = `${right - 8}px`\n } catch (error) {\n this.logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n createinbox () {\n this.inbox = this.createEl('div', 'inbox')\n const header = this.createEl('div', 'header')\n\n const headerTitle = this.createEl('div', 'headerTitle')\n headerTitle.innerText = this.config.title\n\n const closeIcon = this.createEl('div', 'closeInbox')\n closeIcon.innerHTML = '×'\n\n header.appendChild(headerTitle)\n header.appendChild(closeIcon)\n this.inbox.appendChild(header)\n if (this.config.categories.length) {\n const categories = this.createCategories()\n this.inbox.appendChild(categories)\n }\n this.inboxCard = this.createEl('div', 'inboxCard')\n this.inbox.appendChild(this.inboxCard)\n\n this.emptyInboxMsg = this.createEl('div', 'emptyInboxMsg')\n this.emptyInboxMsg.innerText = 'All messages will be displayed here.'\n this.inboxCard.appendChild(this.emptyInboxMsg)\n\n // Intersection observer for notification viewed\n const options = {\n root: this.inboxCard,\n rootMargin: '0px',\n threshold: 0.5\n }\n this.observer = new IntersectionObserver((entries, observer) => { this.handleMessageViewed(entries) }, options)\n\n this.addMsgsToInboxFromLS()\n }\n\n createCategories () {\n const categoriesContainer = this.createEl('div', 'categoriesContainer')\n\n const leftArrow = this.createEl('div', 'leftArrow')\n leftArrow.innerHTML = arrowSvg\n leftArrow.children[0].style = 'transform: rotate(180deg)'\n leftArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(-70, 0)\n })\n categoriesContainer.appendChild(leftArrow)\n\n const categoriesWrapper = this.createEl('div', 'categoriesWrapper')\n const _categories = ['All', ...this.config.categories]\n _categories.forEach((c, i) => {\n const category = this.createEl('div', `category-${i}`, 'category')\n category.innerText = c\n if (i === 0) {\n this.selectedCategoryRef = category\n }\n categoriesWrapper.appendChild(category)\n })\n categoriesContainer.appendChild(categoriesWrapper)\n\n const rightArrow = this.createEl('div', 'rightArrow')\n rightArrow.innerHTML = arrowSvg\n rightArrow.addEventListener('click', () => {\n this.shadowRoot.getElementById('categoriesWrapper').scrollBy(70, 0)\n })\n categoriesContainer.appendChild(rightArrow)\n\n const options = { root: categoriesContainer, threshold: 0.9 }\n const firstCategory = categoriesWrapper.children[0]\n const lastCategory = categoriesWrapper.children[this.config.categories.length]\n\n const firstCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(leftArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n firstCategoryObserver.observe(firstCategory)\n\n const lastCategoryObserver = new IntersectionObserver((e) => {\n this.categoryObserverCb(rightArrow, e[0].intersectionRatio >= 0.9)\n }, options)\n lastCategoryObserver.observe(lastCategory)\n\n return categoriesContainer\n }\n\n categoryObserverCb (el, hide) {\n if (!el) {\n return\n }\n el.style.display = hide ? 'none' : 'flex'\n }\n\n updateActiveCategory (activeCategory) {\n this.selectedCategory = activeCategory\n\n this.inboxCard.scrollTop = 0\n let counter = 0\n\n this.prevCategoryRef && this.prevCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef.setAttribute('selected', 'true')\n\n this.inboxCard.childNodes.forEach(c => {\n if (c.getAttribute('id') !== 'emptyInboxMsg') {\n c.style.display = (this.selectedCategory === 'All' || c.getAttribute('category') === this.selectedCategory) ? 'block' : 'none'\n if (c.style.display === 'block') {\n counter++\n }\n }\n })\n if (counter === 0) {\n this.emptyInboxMsg.innerText = `${activeCategory} messages will be displayed here.`\n this.emptyInboxMsg.style.display = 'block'\n } else {\n this.emptyInboxMsg.style.display = 'none'\n }\n }\n\n buildUIForMessages (messages = {}) {\n !this.isPreview && this.updateTSForRenderedMsgs()\n this.inboxCard.scrollTop = 0\n const maxMsgsInInbox = this.config.maxMsgsInInbox ?? MAX_INBOX_MSG\n const firstChild = this.inboxCard.firstChild\n\n const sortedMsgs = Object.values(messages).sort((a, b) => b.date - a.date).map((m) => m.id)\n for (const m of sortedMsgs) {\n const item = new Message(this.config, messages[m])\n item.setAttribute('id', messages[m].id)\n item.setAttribute('pivot', messages[m].wzrk_pivot)\n item.setAttribute('part', 'ct-inbox-message')\n if (this.config.categories.length > 0) {\n item.setAttribute('category', messages[m].tags[0] || '')\n item.style.display = (this.selectedCategory === 'All' || messages[m].category === this.selectedCategory) ? 'block' : 'none'\n } else {\n item.style.display = 'block'\n }\n this.inboxCard.insertBefore(item, firstChild)\n this.observer.observe(item)\n }\n\n let msgTotalCount = this.inboxCard.querySelectorAll('ct-inbox-message').length\n while (msgTotalCount > maxMsgsInInbox) {\n const ctInboxMsgs = this.inboxCard.querySelectorAll('ct-inbox-message')\n if (ctInboxMsgs.length > 0) { ctInboxMsgs[ctInboxMsgs.length - 1].remove() }\n msgTotalCount--\n }\n const hasMessages = this.inboxCard.querySelectorAll('ct-inbox-message[style*=\"display: block\"]').length\n this.emptyInboxMsg.style.display = hasMessages ? 'none' : 'block'\n }\n\n /**\n * Adds a click listener on the document. For every click we check\n * 1. if the click has happenned within the inbox\n * - on close button, we close the inbox\n * - on any of the category, we set that as the activeCategory\n * - on any of the message, we mark raise notification clicked event. To identify the clicks on a button, we have p.id.startsWith('button-')\n * 2. if the user has clicked on the inboxSelector, we toggle inbox\n * 3. if the click is anywhere else on the UI and the inbox is open, we simply close it\n */\n\n addClickListenerOnDocument = (() => {\n return (e) => {\n if (e.composedPath().includes(this.inbox)) {\n // path is not supported on FF. So we fallback to e.composedPath\n const path = e.path || (e.composedPath && e.composedPath())\n if (path.length) {\n const id = path[0].id\n if (id === 'closeInbox') {\n this.toggleInbox()\n } else if (id.startsWith('category-')) {\n this.prevCategoryRef = this.selectedCategoryRef\n this.selectedCategoryRef = path[0]\n this.updateActiveCategory(path[0].innerText)\n } else {\n const _path = path.filter((p) => p.id?.startsWith('button-') || p.tagName === 'CT-INBOX-MESSAGE')\n if (_path.length) {\n const messageEl = _path[_path.length - 1]\n messageEl.raiseClickedEvent(_path[0], this.isPreview)\n }\n }\n }\n } else if (this.checkForWebInbox(e) || this.isInboxOpen) {\n if (this.isInboxFromFlutter) {\n this.isInboxFromFlutter = false\n } else {\n this.toggleInbox(e)\n }\n }\n }\n })()\n\n /**\n * Checks if the current event target is part of the stored inboxSelector or the inboxSelector in the document.\n *\n * @param {Event} e - The event object to check.\n * @returns {boolean} - Returns true if the event target is within the inboxSelector, otherwise false.\n */\n checkForWebInbox (e) {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxElement = document.getElementById(config.inboxSelector)\n\n return (\n this.inboxSelector?.contains(e.target) || inboxElement?.contains(e.target)\n )\n }\n\n /**\n * This function will be called every time when a message comes into the inbox viewport and it's visibility increases to 50% or drops below 50%\n * If a msg is 50% visible in the UI, we need to mark the message as viewed in LS and raise notification viewed event\n */\n handleMessageViewed (entries) {\n const raiseViewedEvent = !this.isPreview\n if (this.isInboxOpen) {\n entries.forEach((e) => {\n if (e.isIntersecting && this.unviewedMessages.hasOwnProperty(e.target.id) && e.target.message.viewed === 0) {\n e.target.message.viewed = 1\n if (raiseViewedEvent) {\n window.clevertap.renderNotificationViewed({ msgId: e.target.campaignId, pivotId: e.target.pivotId })\n this.updateMessageInLS(e.target.id, { ...e.target.message, viewed: 1 })\n setTimeout(() => {\n e.target.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }, 1000)\n } else {\n console.log('Notifiction viewed event will be raised at run time with payload ::', { msgId: e.target.campaignId, pivotId: e.target.pivotId })\n }\n this.unviewedCounter--\n this.updateUnviewedBadgeCounter()\n delete this.unviewedMessages[e.target.id]\n }\n })\n }\n }\n\n updateMessageInLS (key, value) {\n if (!this.isPreview) {\n const messages = getInboxMessages()\n messages[key] = value\n saveInboxMessages(messages)\n }\n }\n\n // create a separte fn fro refactoring\n toggleInbox (e) {\n this.isInboxOpen = !this.isInboxOpen\n this.isInboxFromFlutter = !!e?.rect\n if (this.isInboxOpen) {\n this.inboxCard.scrollTop = 0\n !this.isPreview && this.deleteExpiredAndGetUnexpiredMsgs()\n this.inbox.style.display = 'block'\n this.inbox.style.zIndex = '2147483647' // zIndex should be max for the inbox to be rendered on top of all elements\n if (this.config.categories.length) {\n this.selectedCategoryRef.setAttribute('selected', 'false')\n this.selectedCategoryRef = this.shadowRoot.getElementById('category-0')\n this.updateActiveCategory(this.selectedCategoryRef.innerText)\n this.shadowRoot.getElementById('categoriesWrapper').scrollLeft -= this.shadowRoot.getElementById('categoriesWrapper').scrollWidth\n }\n this.setInboxPosition(e)\n } else {\n this.inbox.style.display = 'none'\n }\n }\n\n setInboxPosition (e) {\n const windowWidth = window.outerWidth\n const customInboxStyles = getComputedStyle($ct.inbox)\n const top = customInboxStyles.getPropertyValue('--inbox-top')\n const bottom = customInboxStyles.getPropertyValue('--inbox-bottom')\n const left = customInboxStyles.getPropertyValue('--inbox-left')\n const right = customInboxStyles.getPropertyValue('--inbox-right')\n const hasPositionDefined = top || bottom || left || right\n if (windowWidth > 481 && !hasPositionDefined) {\n const res = getInboxPosition(e, this.inbox.clientHeight, this.inbox.clientWidth)\n const xPos = res.xPos\n const yPos = res.yPos\n this.inbox.style.top = yPos + 'px'\n this.inbox.style.left = xPos + 'px'\n }\n }\n\n /**\n * Updates the UI with the number of unviewed messages\n * If there are more than 9 unviewed messages, we show the count as 9+\n * Only show this badge if the current document has the inboxNode\n */\n\n setBadgeStyle = (msgCount) => {\n if (this.unviewedBadge !== null) {\n this.unviewedBadge.innerText = msgCount > 9 ? '9+' : msgCount\n const shouldShowUnviewedBadge = msgCount > 0 && document.getElementById(this.config.inboxSelector)\n this.unviewedBadge.style.display = shouldShowUnviewedBadge ? 'flex' : 'none'\n }\n }\n\n updateUnviewedBadgeCounter () {\n if (this.isPreview) {\n this.setBadgeStyle(this.unviewedCounter)\n return\n }\n let counter = 0\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const messages = getInboxMessages()\n if (messages[m.id] && messages[m.id].viewed === 0) {\n counter++\n }\n })\n this.setBadgeStyle(counter)\n }\n\n updateTSForRenderedMsgs () {\n this.inboxCard.querySelectorAll('ct-inbox-message').forEach((m) => {\n const ts = m.id.split('_')[1]\n m.shadow.getElementById('timeStamp').firstChild.innerText = determineTimeStampText(ts)\n })\n }\n\n getInboxStyles () {\n const headerHeight = 36\n const categoriesHeight = this.config.categories.length ? 64 : 16\n\n const styles = {\n panelBackgroundColor: this.config.styles.panelBackgroundColor,\n panelBorderColor: this.config.styles.panelBorderColor,\n headerBackgroundColor: this.config.styles.header.backgroundColor,\n headerTitleColor: this.config.styles.header.titleColor,\n closeIconColor: this.config.styles.closeIconColor,\n categoriesTabColor: this.config.styles.categories.tabColor,\n categoriesTitleColor: this.config.styles.categories.titleColor,\n selectedCategoryTabColor: this.config.styles.categories.selectedTab.tabColor,\n selectedCategoryTitleColor: this.config.styles.categories.selectedTab.titleColor,\n headerCategoryHeight: headerHeight + categoriesHeight\n }\n if (this.config.styles.categories.borderColor) {\n styles.categoriesBorderColor = this.config.styles.categories.borderColor\n }\n if (this.config.styles.categories.selectedTab.borderColor) {\n styles.selectedCategoryBorderColor = this.config.styles.categories.selectedTab.borderColor\n }\n\n const inboxStyles = inboxContainerStyles(styles)\n\n const cardStyles = this.config.styles.cards\n const msgStyles = messageStyles({\n backgroundColor: cardStyles.backgroundColor,\n borderColor: cardStyles.borderColor,\n titleColor: cardStyles.titleColor,\n descriptionColor: cardStyles.descriptionColor,\n buttonColor: cardStyles.buttonColor,\n buttonTextColor: cardStyles.buttonTextColor,\n unreadMarkerColor: cardStyles.unreadMarkerColor\n })\n\n return inboxStyles + msgStyles\n }\n}\n","import { StorageManager, $ct } from '../../util/storage'\nimport { Inbox } from './WebInbox'\nimport { Message } from './Message'\nimport { WEBINBOX_CONFIG, GCOOKIE_NAME, WEBINBOX } from '../../util/constants'\nimport { isValueValid } from '../../util/datatypes'\n\nexport const processWebInboxSettings = (webInboxSetting, isPreview = false) => {\n const _settings = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (isPreview) {\n $ct.inbox.inboxConfigForPreview = webInboxSetting\n $ct.inbox.isPreview = true\n $ct.inbox && $ct.inbox.init()\n } else if (JSON.stringify(_settings) !== JSON.stringify(webInboxSetting)) {\n StorageManager.saveToLSorCookie(WEBINBOX_CONFIG, webInboxSetting)\n $ct.inbox && $ct.inbox.init()\n }\n}\n\nexport const processInboxNotifs = (msg) => {\n if (msg.inbox_preview) {\n $ct.inbox.incomingMessagesForPreview = msg.inbox_notifs\n } else {\n $ct.inbox.incomingMessages = msg\n }\n}\n\nexport const processWebInboxResponse = (msg) => {\n if (msg.webInboxSetting) {\n processWebInboxSettings(msg.webInboxSetting, msg.inbox_preview)\n }\n if (msg.inbox_notifs != null) {\n processInboxNotifs(msg)\n }\n}\n\nexport const addWebInbox = (logger) => {\n checkAndRegisterWebInboxElements()\n $ct.inbox = new Inbox({ logger })\n document.body.appendChild($ct.inbox)\n}\n\nconst getAndMigrateInboxMessages = (guid) => {\n const messages = StorageManager.readFromLSorCookie(WEBINBOX) || {}\n // Doing this to migrate message to guid level\n if (Object.keys(messages).length > 0 && Object.keys(messages)[0].includes('_')) {\n const gudInboxObj = {}\n gudInboxObj[guid] = messages\n StorageManager.saveToLSorCookie(WEBINBOX, gudInboxObj)\n return gudInboxObj\n }\n return messages\n}\n\nexport const getInboxMessages = () => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return {} }\n const messages = getAndMigrateInboxMessages(guid)\n\n return messages.hasOwnProperty(guid) ? messages[guid] : {}\n}\n\nexport const saveInboxMessages = (messages) => {\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (!isValueValid(guid)) { return }\n const storedInboxObj = getAndMigrateInboxMessages(guid)\n\n const newObj = { ...storedInboxObj, [guid]: messages }\n StorageManager.saveToLSorCookie(WEBINBOX, newObj)\n}\n\nexport const initializeWebInbox = (logger) => {\n return new Promise((resolve, reject) => {\n const retryUntil = (condition, interval = 500, maxRetries = 20) => {\n return new Promise((resolve, reject) => {\n let attempts = 0\n const retry = setInterval(() => {\n logger.debug(`Retry attempt: ${attempts + 1}`)\n if (condition()) {\n clearInterval(retry)\n resolve() // Success\n } else if ($ct.inbox !== null) {\n clearInterval(retry)\n resolve() // Inbox already initialized\n } else if (attempts >= maxRetries) {\n clearInterval(retry)\n reject(new Error('Condition not met within max retries'))\n }\n attempts++\n }, interval)\n })\n }\n\n const addInboxSafely = () => {\n if ($ct.inbox === null) {\n addWebInbox(logger)\n }\n }\n\n const checkElementCondition = () => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n if (!config.inboxSelector) {\n logger.debug('Inbox selector is not configured')\n return false\n }\n return document.getElementById(config.inboxSelector) && $ct.inbox === null\n }\n\n const onFailure = () => {\n logger.debug('Failed to add inbox')\n }\n\n let retryStarted = false // Guard flag\n const startRetry = () => {\n if (!retryStarted) {\n retryStarted = true\n retryUntil(checkElementCondition, 500, 20)\n .then(() => {\n addInboxSafely()\n resolve()\n })\n .catch(onFailure)\n }\n }\n\n const setupEventListeners = () => {\n if (document.readyState === 'complete') {\n startRetry()\n } else {\n window.addEventListener('load', startRetry)\n document.addEventListener(\n 'readystatechange',\n () => {\n if (document.readyState === 'complete') {\n startRetry()\n }\n }\n )\n }\n }\n\n setupEventListeners()\n })\n}\n\nexport const checkAndRegisterWebInboxElements = () => {\n if (customElements.get('ct-web-inbox') === undefined) {\n customElements.define('ct-web-inbox', Inbox)\n customElements.define('ct-inbox-message', Message)\n }\n}\n\nexport const getInboxPosition = (e, inboxHeight, inboxWidth) => {\n const horizontalScroll = document.scrollingElement.scrollLeft\n const verticalScroll = document.scrollingElement.scrollTop\n const windowWidth = window.innerWidth + horizontalScroll\n const windowHeight = window.innerHeight + verticalScroll\n const selectorRect = e.rect || e.target.getBoundingClientRect()\n const selectorX = selectorRect.x + horizontalScroll\n const selectorY = selectorRect.y + verticalScroll\n const selectorLeft = selectorRect.left + horizontalScroll\n const selectorRight = selectorRect.right + horizontalScroll\n const selectorTop = selectorRect.top + verticalScroll\n // const selectorBottom = selectorRect.bottom + verticalScroll\n const selectorBottom = selectorRect.bottom\n const selectorHeight = selectorRect.height\n const selectorWidth = selectorRect.width\n const selectorCenter = {\n x: selectorX + (selectorWidth / 2),\n y: selectorY + (selectorHeight / 2)\n }\n const halfOfInboxHeight = (inboxHeight / 2)\n const halfOfInboxWidth = (inboxWidth / 2)\n let inboxOnSide = false\n\n let xPos, yPos\n\n const padding = 16\n\n /**\n * y co-ordinates:\n * Try to push the card downwards\n * if that's not possible, push it upwards\n * if that too is not possible, then the card will be placed on the side. Add some padding.\n *\n * x co-ordinates:\n * If the card is on the side,\n * try to place it to the right. If it's not possible,\n * place it to the left\n * If the card is either on top/ bottom, set the x co-ordinate such that the selector center and the inbox card center become the same\n * Now,\n * if the left of the inbox card is < 0,\n * try to get the left aligned to the selectorLeft.\n * if that's not possible, simply set left to 0\n * if the right of the inbox card > windowWidth,\n * try to get the right of rhe inbox card aligned with the selectorRight\n * if that's not possible, simply set the inbox right to the window Right\n */\n if (selectorBottom + inboxHeight <= windowHeight) { // try to place the card down\n const availableHeight = windowHeight - (selectorBottom + inboxHeight)\n yPos = availableHeight >= padding ? selectorBottom + padding : selectorBottom + availableHeight\n } else if (selectorTop - inboxHeight >= verticalScroll) { // try to place the card up\n const availableHeight = selectorTop - inboxHeight\n yPos = availableHeight >= padding ? selectorTop - inboxHeight - padding : selectorTop - inboxHeight - availableHeight\n } else {\n inboxOnSide = true\n yPos = selectorCenter.y - halfOfInboxHeight // with this the y co-ordinate of the selector center and the inbox card center become the same\n if (yPos < verticalScroll) {\n yPos = verticalScroll\n } else if (yPos + inboxHeight > windowHeight) {\n yPos = windowHeight - inboxHeight\n }\n }\n\n if (inboxOnSide) {\n // See if we can place the card to the right of the selector\n const inboxRight = selectorRight + inboxWidth\n if (inboxRight <= windowWidth) {\n const availableWidth = inboxRight + padding <= windowWidth ? padding : windowWidth - inboxRight\n xPos = selectorRight + availableWidth\n } else {\n const inboxLeft = selectorLeft - inboxWidth\n const availableWidth = inboxLeft - padding >= horizontalScroll ? padding : inboxLeft - horizontalScroll\n xPos = inboxLeft - availableWidth\n }\n } else {\n xPos = selectorCenter.x - halfOfInboxWidth\n if (xPos < horizontalScroll) {\n if (selectorLeft + inboxWidth <= windowWidth) {\n xPos = selectorLeft\n } else {\n xPos = horizontalScroll\n }\n } else if (xPos + inboxWidth > windowWidth) {\n if (selectorRight - inboxWidth >= horizontalScroll) {\n xPos = selectorRight - inboxWidth\n } else {\n xPos = windowWidth - inboxWidth\n }\n }\n }\n\n return { xPos, yPos }\n}\n\nexport const determineTimeStampText = (ts) => {\n const now = Date.now()\n let diff = Math.floor((now - ts) / 60000)\n if (diff < 5) {\n return 'Just now'\n }\n if (diff < 60) {\n return `${diff} minute${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 60)\n if (diff < 24) {\n return `${diff} hour${diff > 1 ? 's' : ''} ago`\n }\n diff = Math.floor(diff / 24)\n return `${diff} day${diff > 1 ? 's' : ''} ago`\n}\n\nexport const hasWebInboxSettingsInLS = () => {\n return Object.keys(StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}).length > 0\n}\n\nexport const arrowSvg = `\n\n\n`\nexport const greenTickSvg = `\n\n\n`\n","export const OVERLAY_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js'\nexport const CSS_PATH = 'https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css'\nexport const WVE_CLASS = {\n FLICKER_SHOW: 'wve-anti-flicker-show',\n FLICKER_HIDE: 'wve-anti-flicker-hide',\n FLICKER_ID: 'wve-flicker-style'\n}\nexport const WVE_QUERY_PARAMS = {\n BUILDER: 'ctBuilder',\n PREVIEW: 'ctBuilderPreview',\n SDK_CHECK: 'ctBuilderSDKCheck'\n}\n","export const updateFormData = (element, formStyle, payload, isPreview = false) => {\n if (formStyle !== undefined) {\n // Update the element style\n if (formStyle.style !== undefined) {\n Object.keys(formStyle.style).forEach((property) => {\n element.style.setProperty(property, formStyle.style[property])\n })\n }\n\n // Update underline for element\n if (formStyle.underline !== undefined) {\n const curTextDecoration = element.style.textDecoration\n if (formStyle.underline) {\n element.style.textDecoration = `${curTextDecoration} underline`.trim()\n } else {\n element.style.textDecoration = curTextDecoration.replace('underline', '').trim()\n }\n }\n\n // Update element text\n if (formStyle.text !== undefined) {\n element.innerText = isPreview ? formStyle.text.text : formStyle.text\n }\n\n // Handle element onClick\n if (formStyle.clickDetails !== undefined) {\n const url = formStyle.clickDetails.clickUrl\n element.onclick = formStyle.clickDetails.newTab\n ? () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.open(url, '_blank').focus()\n }\n : () => {\n if (!isPreview) {\n window.clevertap.raiseNotificationClicked(payload)\n }\n window.location.href = url\n }\n }\n\n // Set the image source\n if (formStyle.imgURL !== undefined && element.tagName.toLowerCase() === 'img') {\n element.src = formStyle.imgURL\n }\n }\n}\n\nexport const updateElementCSS = (element) => {\n // Handle elementCss\n if (element.elementCSS !== undefined) {\n const style = document.createElement('style')\n style.innerHTML = element.elementCSS\n document.head.appendChild(style)\n }\n}\n","import { CSS_PATH, OVERLAY_PATH, WVE_CLASS, WVE_QUERY_PARAMS } from './builder_constants'\nimport { updateFormData, updateElementCSS } from './dataUpdate'\n\nexport const handleActionMode = (logger, accountId) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case WVE_QUERY_PARAMS.BUILDER:\n logger.debug('open in visual builder mode')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'builder', originUrl: window.location.href }, '*')\n }\n break\n case WVE_QUERY_PARAMS.PREVIEW:\n logger.debug('preview of visual editor')\n window.addEventListener('message', handleMessageEvent, false)\n if (parentWindow) {\n parentWindow.postMessage({ message: 'preview', originUrl: window.location.href }, '*')\n }\n break\n case WVE_QUERY_PARAMS.SDK_CHECK:\n if (parentWindow) {\n logger.debug('SDK version check')\n const sdkVersion = '$$PACKAGE_VERSION$$'\n parentWindow.postMessage({\n message: 'SDKVersion',\n accountId,\n originUrl: window.location.href,\n sdkVersion\n },\n '*'\n )\n }\n break\n default:\n logger.debug(`unknown query param ${ctType}`)\n break\n }\n }\n}\n\n// TODO: Add a guarding mechanism to skip postMessages from non trusted sources\nconst handleMessageEvent = (event) => {\n if (event.data && isValidUrl(event.data.originUrl)) {\n const msgOrigin = new URL(event.data.originUrl).origin\n if (event.origin !== msgOrigin) {\n return\n }\n } else {\n return\n }\n if (event.data.message === 'Dashboard') {\n // handle personalisation\n window.evtMaster = event.data.personalisation.evtMaster\n initialiseCTBuilder(\n event.data.url,\n event.data.variant ?? null,\n event.data.details ?? {},\n event.data.personalisation\n )\n } else if (event.data.message === 'Overlay') {\n renderVisualBuilder(event.data, true)\n }\n}\n/**\n * Initializes the Clevertap builder.\n * @param {string} url - The URL to initialize the builder.\n * @param {string} variant - The variant of the builder.\n * @param {Object} details - The details object.\n * @param {Object} personalisation - The personalisation object\n */\nconst initialiseCTBuilder = (url, variant, details, personalisation) => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'complete') {\n onContentLoad(url, variant, details, personalisation)\n }\n })\n }\n}\n\nlet container\nlet contentLoaded = false\nlet isShopify = false\n/**\n * Handles content load for Clevertap builder.\n */\nfunction onContentLoad (url, variant, details, personalisation) {\n if (!contentLoaded) {\n if (window.Shopify) {\n isShopify = true\n }\n document.body.innerHTML = ''\n document.head.innerHTML = ''\n document.documentElement.innerHTML = ''\n container = document.createElement('div')\n container.id = 'overlayDiv'\n container.style.position = 'relative' // Ensure relative positioning for absolute positioning of form\n container.style.display = 'flex'\n document.body.appendChild(container)\n const overlayPath = OVERLAY_PATH\n loadOverlayScript(overlayPath, url, variant, details, personalisation)\n .then(() => {\n console.log('Overlay script loaded successfully.')\n contentLoaded = true\n })\n .catch((error) => {\n console.error('Error loading overlay script:', error)\n })\n loadCSS()\n }\n}\n\n/**\n * Loads CSS file.\n */\nfunction loadCSS () {\n var link = document.createElement('link')\n link.rel = 'stylesheet'\n link.type = 'text/css'\n link.href = CSS_PATH\n document.head.appendChild(link)\n}\n\n/**\n * Loads the overlay script.\n * @param {string} overlayPath - The path to overlay script.\n * @param {string} url - The URL.\n * @param {string} variant - The variant.\n * @param {Object} details - The details object.\n * @param {Object} personalisation\n * @returns {Promise} A promise.\n */\nfunction loadOverlayScript (overlayPath, url, variant, details, personalisation) {\n return new Promise((resolve, reject) => {\n var script = document.createElement('script')\n script.type = 'module'\n script.src = overlayPath\n script.onload = function () {\n if (typeof window.Overlay === 'function') {\n window.Overlay({ id: '#overlayDiv', url, variant, details, isShopify, personalisation })\n resolve()\n } else {\n reject(new Error('ContentLayout not found in overlay.js'))\n }\n }\n script.onerror = function (error) {\n reject(error)\n }\n document.head.appendChild(script)\n })\n}\n\n/**\n * Renders the visual builder.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {boolean} isPreview - Indicates if it's a preview.\n */\nexport const renderVisualBuilder = (targetingMsgJson, isPreview) => {\n const insertedElements = []\n const details = isPreview ? targetingMsgJson.details : targetingMsgJson.display.details\n let url = window.location.href\n if (isPreview) {\n const currentUrl = new URL(url)\n currentUrl.searchParams.delete('ctActionMode')\n url = currentUrl.toString()\n }\n let notificationViewed = false\n const payload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot\n }\n\n const raiseViewed = () => {\n if (!isPreview && !notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const raiseClicked = (payload) => {\n window.clevertap.renderNotificationClicked(payload)\n }\n\n const processElement = (element, selector) => {\n if (selector.elementCSS) {\n updateElementCSS(selector)\n }\n if (selector.isTrackingClicks?.name) {\n element.addEventListener('click', () => {\n const clickedPayload = {\n msgId: targetingMsgJson.wzrk_id,\n pivotId: targetingMsgJson.wzrk_pivot,\n msgCTkv: { wzrk_selector: selector.isTrackingClicks.name }\n }\n raiseClicked(clickedPayload)\n })\n }\n if (selector.values) {\n switch (selector.values.editor) {\n case 'html':\n if (isPreview) {\n element.outerHTML = selector.values.html.text\n } else {\n element.outerHTML = selector.values.html\n }\n break\n case 'json':\n dispatchJsonData(targetingMsgJson, selector.values, isPreview)\n break\n case 'form':\n payload.msgCTkv = { wzrk_selector: selector.selector }\n updateFormData(element, selector.values.form, payload, isPreview)\n break\n }\n }\n }\n\n const tryFindingElement = (selector) => {\n let count = 0\n const intervalId = setInterval(() => {\n let retryElement\n try {\n retryElement = document.querySelector(selector.selector)\n } catch (_) {}\n if (retryElement) {\n raiseViewed()\n processElement(retryElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${selector}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n details.forEach(d => {\n if (d.url === url) {\n d.selectorData.forEach(s => {\n if ((s.selector.includes('-afterend-') || s.selector.includes('-beforebegin-')) &&\n s.values.initialHtml) {\n insertedElements.push(s)\n } else {\n let element\n try {\n element = document.querySelector(s.selector)\n } catch (_) {}\n if (element) {\n raiseViewed()\n processElement(element, s)\n } else {\n tryFindingElement(s)\n }\n }\n })\n }\n })\n\n const addNewEl = (selector) => {\n const { pos, sibling } = findSiblingSelector(selector.selector)\n let count = 0\n const intervalId = setInterval(() => {\n let element = null\n try {\n const siblingEl = document.querySelector(sibling)\n const ctEl = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n element = ctEl || siblingEl\n } catch (_) {\n element = document.querySelector(`[ct-selector=\"${sibling}\"]`)\n }\n if (element) {\n const tempDiv = document.createElement('div')\n tempDiv.innerHTML = selector.values.initialHtml\n const newElement = tempDiv.firstElementChild\n element.insertAdjacentElement(pos, newElement)\n if (!element.getAttribute('ct-selector')) {\n element.setAttribute('ct-selector', sibling)\n }\n const insertedElement = document.querySelector(`[ct-selector=\"${selector.selector}\"]`)\n raiseViewed()\n processElement(insertedElement, selector)\n clearInterval(intervalId)\n } else if (++count >= 20) {\n console.log(`No element present on DOM with selector '${sibling}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n if (insertedElements.length > 0) {\n const sortedArr = insertedElements.sort((a, b) => {\n const numA = parseInt(a.selector.split('-')[0], 10)\n const numB = parseInt(b.selector.split('-')[0], 10)\n return numA - numB\n })\n sortedArr.forEach(addNewEl)\n }\n}\n\nfunction findSiblingSelector (input) {\n const regex = /^(\\d+)-(afterend|beforebegin)-(.+)$/\n const match = input.match(regex)\n\n if (match) {\n return { pos: match[2], sibling: match[3] }\n }\n return { pos: 'beforebegin', sibling: '' }\n}\n\n/**\n * Dispatches JSON data.\n * @param {Object} targetingMsgJson - The point and click campaign JSON object.\n * @param {Object} selector - The selector object.\n * @param {boolean} isPreview - If preview different handling\n */\nfunction dispatchJsonData (targetingMsgJson, selector, isPreview = false) {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (selector.json != null) {\n if (isPreview) {\n inaObj.json = selector.json.text\n } else {\n inaObj.json = selector.json\n }\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display_buider', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nfunction isValidUrl (string) {\n try {\n const url = new URL(string)\n return Boolean(url)\n } catch (_err) {\n return false\n }\n}\n\nexport function addAntiFlicker (antiFlicker) {\n const { personalizedSelectors = [], delayTime = 2000 } = antiFlicker\n const retryElements = {} // Track selectors that need retry\n let retryCount = 0 // Counter for retries\n let retryInterval\n function isInViewport (element) {\n const rect = element.getBoundingClientRect()\n const { innerHeight: windowHeight, innerWidth: windowWidth } = window\n return (\n rect.bottom > 0 &&\n rect.right > 0 &&\n rect.top < windowHeight &&\n rect.left < windowWidth\n )\n }\n (function () {\n const styleContent = `\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n `\n // Create and append the style element if it doesn't exist\n const styleId = WVE_CLASS.FLICKER_ID\n if (!document.getElementById(styleId)) {\n const styleElement = document.createElement('style')\n styleElement.id = styleId\n styleElement.textContent = styleContent\n document.head.appendChild(styleElement)\n }\n })()\n function applyAntiFlicker (selectors) {\n function processSelectors (selectorElements) {\n const elements = []\n selectorElements.forEach(selector => {\n const matchedElements = document.querySelectorAll(selector)\n if (matchedElements.length) {\n matchedElements.forEach(el => {\n if (isInViewport(el)) {\n elements.push(el)\n }\n })\n delete retryElements[selector] // Successfully processed, remove from retry list\n } else {\n retryElements[selector] = false // Add to retry list if not found\n }\n })\n applyStyles(elements)\n }\n function retryProcessing () {\n processSelectors(Object.keys(retryElements))\n retryCount++\n if (Object.keys(retryElements).length === 0 || retryCount > 20) {\n retryCount = 0\n clearInterval(retryInterval)\n }\n }\n processSelectors(selectors)\n if (Object.keys(retryElements).length) {\n retryInterval = setInterval(retryProcessing, 100)\n }\n }\n function applyStyles (elements) {\n elements.forEach(el => el.classList.add(WVE_CLASS.FLICKER_HIDE))\n setTimeout(() => {\n elements.forEach(el => {\n el.classList.remove(WVE_CLASS.FLICKER_HIDE)\n el.classList.add(WVE_CLASS.FLICKER_SHOW)\n })\n }, delayTime) // Apply styles after maxRenderTime\n }\n function observeUrlChange () {\n let previousHref = document.location.href\n const observer = new MutationObserver(() => {\n if (previousHref !== document.location.href) {\n previousHref = document.location.href\n applyAntiFlicker(personalizedSelectors)\n }\n })\n observer.observe(document.body, { childList: true, subtree: true })\n }\n window.addEventListener('DOMContentLoaded', () => {\n observeUrlChange()\n })\n applyAntiFlicker(personalizedSelectors)\n}\n","export class CTWebPersonalisationBanner extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n }\n\n _details = null\n shadow = null\n\n get details () {\n return this._details || ''\n }\n\n set details (val) {\n if (this._details === null) {\n this._details = val\n this.renderBanner()\n }\n }\n\n renderBanner () {\n this.shadow.innerHTML = this.getBannerContent()\n if (this.trackClick !== false) {\n this.addEventListener('click', () => {\n const onClickUrl = this.details.onClick\n if (onClickUrl) {\n this.details.window ? window.open(onClickUrl, '_blank') : window.parent.location.href = onClickUrl\n }\n window.clevertap.renderNotificationClicked({ msgId: this.msgId, pivotId: this.pivotId })\n })\n }\n window.clevertap.renderNotificationViewed({ msgId: this.msgId, pivotId: this.pivotId })\n }\n\n getBannerContent () {\n return `\n \n
\n \n \n \n \"Please\n \n ${this.details.html ? this.details.html : ''}\n
\n `\n }\n}\n","import { CTWebPersonalisationBanner } from './banner'\nexport class CTWebPersonalisationCarousel extends HTMLElement {\n constructor () {\n super()\n this.shadow = this.attachShadow({ mode: 'open' })\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n }\n\n _target = null\n _carousel = null\n shadow = null\n slides = 0\n previouslySelectedItem = -1\n selectedItem = 1\n autoSlide = null\n stopAutoSlideTimeout = null\n\n get target () {\n return this._target || ''\n }\n\n set target (val) {\n if (this._target === null) {\n this._target = val\n this.renderCarousel()\n }\n }\n\n get details () {\n return this.target.display.details\n }\n\n get display () {\n return this.target.display\n }\n\n renderCarousel () {\n this.slides = this.details.length\n this.shadow.innerHTML = this.getStyles()\n const carousel = this.getCarouselContent()\n if (this.display.showNavBtns) {\n carousel.insertAdjacentHTML('beforeend', this.display.navBtnsHtml)\n }\n if (this.display.showNavArrows) {\n carousel.insertAdjacentHTML('beforeend', this.display.leftNavArrowHtml)\n carousel.insertAdjacentHTML('beforeend', this.display.rightNavArrowHtml)\n }\n this._carousel = carousel\n this.shadow.appendChild(carousel)\n this.setupClick()\n this.updateSelectedItem()\n // TODO: enable conditionally\n this.startAutoSlide()\n this.setupOnHover()\n window.clevertap.renderNotificationViewed({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot })\n }\n\n setupClick () {\n this._carousel.addEventListener('click', (event) => {\n const eventID = event.target.id\n if (eventID.startsWith('carousel__button')) {\n const selected = +eventID.split('-')[1]\n if (selected !== this.selectedItem) {\n this.previouslySelectedItem = this.selectedItem\n this.selectedItem = selected\n this.updateSelectedItem()\n this.startAutoSlide()\n }\n } else if (eventID.startsWith('carousel__arrow')) {\n eventID.endsWith('right') ? this.goToNext() : this.goToPrev()\n this.startAutoSlide()\n } else if (eventID.indexOf('-') > -1) {\n const item = +eventID.split('-')[1]\n const index = item - 1\n if (window.parent.clevertap) {\n window.clevertap.renderNotificationClicked({ msgId: this.target.wzrk_id, pivotId: this.target.wzrk_pivot, wzrk_slideNo: item })\n }\n const url = this.details[index].onClick\n if (url !== '') {\n this.details[index].window ? window.open(url, '_blank') : window.location.href = url\n }\n }\n })\n }\n\n setupOnHover () {\n this._carousel.addEventListener('mouseenter', (event) => {\n this.stopAutoSlideTimeout = setTimeout(() => {\n this.autoSlide = clearInterval(this.autoSlide)\n }, 500)\n })\n\n this._carousel.addEventListener('mouseleave', (event) => {\n clearTimeout(this.stopAutoSlideTimeout)\n if (this.autoSlide === undefined) {\n this.startAutoSlide()\n }\n })\n }\n\n getCarouselContent () {\n const carousel = document.createElement('div')\n carousel.setAttribute('class', 'carousel')\n\n this.details.forEach((detail, i) => {\n const banner = document.createElement('ct-web-personalisation-banner')\n banner.classList.add('carousel__item')\n banner.trackClick = false\n banner.setAttribute('id', `carousel__item-${i + 1}`)\n banner.details = detail\n carousel.appendChild(banner)\n })\n\n return carousel\n }\n\n getStyles () {\n return `\n \n `\n }\n\n updateSelectedItem () {\n if (this.previouslySelectedItem !== -1) {\n const prevItem = this.shadow.getElementById(`carousel__item-${this.previouslySelectedItem}`)\n const prevButton = this.shadow.getElementById(`carousel__button-${this.previouslySelectedItem}`)\n prevItem.classList.remove('carousel__item--selected')\n if (prevButton) {\n prevButton.classList.remove('carousel__button--selected')\n }\n }\n const item = this.shadow.getElementById(`carousel__item-${this.selectedItem}`)\n const button = this.shadow.getElementById(`carousel__button-${this.selectedItem}`)\n item.classList.add('carousel__item--selected')\n if (button) {\n button.classList.add('carousel__button--selected')\n }\n }\n\n startAutoSlide () {\n clearInterval(this.autoSlide)\n this.autoSlide = setInterval(() => {\n this.goToNext()\n }, this.display.sliderTime ? this.display.sliderTime * 1000 : 3000)\n }\n\n goToNext () {\n this.goTo(this.selectedItem, (this.selectedItem + 1) % this.slides)\n }\n\n goToPrev () {\n this.goTo(this.selectedItem, this.selectedItem - 1)\n }\n\n goTo (prev, cur) {\n this.previouslySelectedItem = prev\n this.selectedItem = cur\n if (cur === 0) {\n this.selectedItem = this.slides\n }\n this.updateSelectedItem()\n }\n}\n","import { CTWebPersonalisationBanner } from '../web-personalisation/banner'\nimport { CTWebPersonalisationCarousel } from '../web-personalisation/carousel'\nimport { CUSTOM_HTML_PREVIEW } from '../constants'\n\nexport const renderPersonalisationBanner = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-banner') === undefined) {\n customElements.define('ct-web-personalisation-banner', CTWebPersonalisationBanner)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const bannerEl = document.createElement('ct-web-personalisation-banner')\n bannerEl.msgId = targetingMsgJson.wzrk_id\n bannerEl.pivotId = targetingMsgJson.wzrk_pivot\n bannerEl.divHeight = targetingMsgJson.display.divHeight\n bannerEl.details = targetingMsgJson.display.details[0]\n const containerEl = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n containerEl.innerHTML = ''\n containerEl.appendChild(bannerEl)\n}\n\nexport const renderPersonalisationCarousel = (targetingMsgJson) => {\n if (customElements.get('ct-web-personalisation-carousel') === undefined) {\n customElements.define('ct-web-personalisation-carousel', CTWebPersonalisationCarousel)\n }\n const divId = targetingMsgJson.display.divId ?? targetingMsgJson.display.divSelector\n const carousel = document.createElement('ct-web-personalisation-carousel')\n carousel.target = targetingMsgJson\n const container = targetingMsgJson.display.divId ? document.getElementById(divId) : document.querySelector(divId)\n container.innerHTML = ''\n container.appendChild(carousel)\n}\n\nexport const handleKVpairCampaign = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.msgContent.kv != null) {\n inaObj.kv = targetingMsgJson.msgContent.kv\n }\n const kvPairsEvent = new CustomEvent('CT_web_native_display', { detail: inaObj })\n document.dispatchEvent(kvPairsEvent)\n}\n\nexport const renderCustomHtml = (targetingMsgJson, logger) => {\n const { display, wzrk_id: wzrkId, wzrk_pivot: wzrkPivot } = targetingMsgJson || {}\n\n const { divId } = display || {}\n const details = display.details[0]\n const html = details.html\n\n if (!divId || !html) {\n logger.error('No div Id or no html found')\n return\n }\n\n let notificationViewed = false\n const payload = {\n msgId: wzrkId,\n pivotId: wzrkPivot\n }\n\n const raiseViewed = () => {\n if (!notificationViewed) {\n notificationViewed = true\n window.clevertap.renderNotificationViewed(payload)\n }\n }\n\n const tryFindingElement = (divId) => {\n let count = 0\n const intervalId = setInterval(() => {\n const retryElement = document.querySelector(divId)\n if (retryElement) {\n raiseViewed()\n retryElement.outerHTML = html\n clearInterval(intervalId)\n } else if (++count >= 20) {\n logger.log(`No element present on DOM with divId '${divId}'.`)\n clearInterval(intervalId)\n }\n }, 500)\n }\n\n tryFindingElement(divId)\n}\n\nexport const handleJson = (targetingMsgJson) => {\n const inaObj = {}\n inaObj.msgId = targetingMsgJson.wzrk_id\n const details = targetingMsgJson.display.details[0]\n const json = details.json\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.json != null) {\n inaObj.json = json\n }\n const jsonEvent = new CustomEvent('CT_web_native_display_json', { detail: inaObj })\n document.dispatchEvent(jsonEvent)\n}\n\nfunction handleCustomHtmlPreviewPostMessageEvent (event, logger) {\n const eventData = JSON.parse(event.data)\n const inAppNotifs = eventData.inapp_notifs\n const msgContent = inAppNotifs[0].msgContent\n if (eventData && msgContent && msgContent.templateType === 'custom-html' && msgContent.type === 5) {\n renderCustomHtml(inAppNotifs[0], logger)\n }\n}\n\nexport const checkCustomHtmlNativeDisplayPreview = (logger) => {\n const searchParams = new URLSearchParams(window.location.search)\n const ctType = searchParams.get('ctActionMode')\n if (ctType) {\n const parentWindow = window.opener\n switch (ctType) {\n case CUSTOM_HTML_PREVIEW:\n if (parentWindow) {\n parentWindow.postMessage('ready', '*')\n const eventHandler = (event) => handleCustomHtmlPreviewPostMessageEvent(event, logger)\n window.addEventListener('message', eventHandler, false)\n }\n break\n default:\n logger.debug(`unknown unknown query param ${ctType}`)\n break\n }\n }\n}\n","import { getCampaignObject, saveCampaignObject, closeIframe } from '../clevertap'\nimport { CAMP_COOKIE_G, GCOOKIE_NAME, EV_COOKIE, WZRK_ID, NOTIFICATION_VIEWED } from '../constants'\nimport { StorageManager, $ct } from '../storage'\nimport RequestDispatcher from '../requestDispatcher'\nimport { compressToBase64 } from '../encoder'\n\nexport const invokeExternalJs = (jsFunc, targetingMsgJson) => {\n const func = window.parent[jsFunc]\n if (typeof func === 'function') {\n if (targetingMsgJson.display.kv != null) {\n func(targetingMsgJson.display.kv)\n } else {\n func()\n }\n }\n}\n\nexport const appendScriptForCustomEvent = (targetingMsgJson, html) => {\n const script = `\n `\n return html.replace(/(<\\s*\\/\\s*body)/, `${script}\\n$1`)\n}\n\nexport const staleDataUpdate = (staledata, campType) => {\n const campObj = getCampaignObject()\n const globalObj = campObj[campType].global\n if (globalObj != null && campType) {\n for (const idx in staledata) {\n if (staledata.hasOwnProperty(idx)) {\n delete globalObj[staledata[idx]]\n if (StorageManager.read(CAMP_COOKIE_G)) {\n const guidCampObj = JSON.parse(decodeURIComponent(StorageManager.read(CAMP_COOKIE_G)))\n const guid = JSON.parse(decodeURIComponent(StorageManager.read(GCOOKIE_NAME)))\n if (guidCampObj[guid] && guidCampObj[guid][campType] && guidCampObj[guid][campType][staledata[idx]]) {\n delete guidCampObj[guid][campType][staledata[idx]]\n StorageManager.save(CAMP_COOKIE_G, encodeURIComponent(JSON.stringify(guidCampObj)))\n }\n }\n }\n }\n }\n saveCampaignObject(campObj)\n}\n\nexport const mergeEventMap = (newEvtMap) => {\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if ($ct.globalEventsMap == null) {\n $ct.globalEventsMap = newEvtMap\n return\n }\n }\n for (const key in newEvtMap) {\n if (newEvtMap.hasOwnProperty(key)) {\n const oldEvtObj = $ct.globalEventsMap[key]\n const newEvtObj = newEvtMap[key]\n if ($ct.globalEventsMap[key] != null) {\n if (newEvtObj[0] != null && newEvtObj[0] > oldEvtObj[0]) {\n $ct.globalEventsMap[key] = newEvtObj\n }\n } else {\n $ct.globalEventsMap[key] = newEvtObj\n }\n }\n }\n}\n\nexport const incrementImpression = (targetingMsgJson, _request) => {\n const data = {}\n data.type = 'event'\n data.evtName = NOTIFICATION_VIEWED\n data.evtData = { [WZRK_ID]: targetingMsgJson.wzrk_id }\n if (targetingMsgJson.wzrk_pivot) {\n data.evtData = { ...data.evtData, wzrk_pivot: targetingMsgJson.wzrk_pivot }\n }\n _request.processEvent(data)\n}\n\nexport const setupClickEvent = (onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session) => {\n if (onClick !== '' && onClick != null) {\n let ctaElement\n let jsCTAElements\n if (isLegacy) {\n ctaElement = contentDiv\n } else if (contentDiv !== null) {\n jsCTAElements = contentDiv.getElementsByClassName('jsCT_CTA')\n if (jsCTAElements != null && jsCTAElements.length === 1) {\n ctaElement = jsCTAElements[0]\n }\n }\n const jsFunc = targetingMsgJson.display.jsFunc\n const isPreview = targetingMsgJson.display.preview\n if (isPreview == null) {\n onClick += getCookieParams(_device, _session)\n }\n\n if (ctaElement != null) {\n ctaElement.onclick = () => {\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n if (isPreview == null) {\n RequestDispatcher.fireRequest(onClick)\n }\n invokeExternalJs(jsFunc, targetingMsgJson)\n // close iframe. using -1 for no campaignId\n closeIframe('-1', divId, _session.sessionId)\n } else {\n const rValue = targetingMsgJson.display.preview ? targetingMsgJson.display.onClick : new URL(targetingMsgJson.display.onClick).searchParams.get('r')\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n\n if (rValue === 'pushPrompt') {\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n // Open Web Push Soft prompt\n window.clevertap.notifications.push({\n skipDialog: true\n })\n closeIframe(campaignId, divId, _session.sessionId)\n } else if (rValue === 'none') {\n // Close notification\n closeIframe(campaignId, divId, _session.sessionId)\n } else {\n // Will get the url to open\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n if (targetingMsgJson.display['close-popup']) {\n closeIframe(campaignId, divId, _session.sessionId)\n }\n if (!targetingMsgJson.display.preview) {\n window.parent.clevertap.renderNotificationClicked({ msgId: targetingMsgJson.wzrk_id, pivotId: targetingMsgJson.wzrk_pivot })\n }\n } else {\n window.location = onClick\n }\n }\n }\n }\n }\n }\n}\n\nexport const getCookieParams = (_device, _session) => {\n const gcookie = _device.getGuid()\n const scookieObj = _session.getSessionCookieObject()\n return '&t=wc&d=' + encodeURIComponent(compressToBase64(gcookie + '|' + scookieObj.p + '|' + scookieObj.s))\n}\n","export const renderPopUpImageOnly = (targetingMsgJson, _session) => {\n const divId = 'wzrkImageOnlyDiv'\n const popupImageOnly = document.createElement('ct-web-popup-imageonly')\n popupImageOnly.session = _session\n popupImageOnly.target = targetingMsgJson\n const containerEl = document.getElementById(divId)\n containerEl.innerHTML = ''\n containerEl.style.visibility = 'hidden'\n containerEl.appendChild(popupImageOnly)\n}\n","export const getBoxPromptStyles = (style) => {\n const totalBorderWidth = style.card.borderEnabled ? style.card.border.borderWidth * 2 : 0\n const cardPadding = 16 * 2 // Left and right padding\n const cardContentWidth = 360 - cardPadding - totalBorderWidth\n\n return `\n #pnWrapper {\n width: 360px;\n }\n\n #pnOverlay {\n background-color: ${style.overlay.color || 'rgba(0, 0, 0, .15)'};\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 10000\n }\n\n #pnCard {\n background-color: ${style.card.color};\n border-radius: ${style.card.borderRadius}px;\n padding: 16px;\n width: ${cardContentWidth}px;\n position: fixed;\n z-index: 999999;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n ${style.card.borderEnabled ? `\n border-width: ${style.card.border.borderWidth}px;\n border-color: ${style.card.border.borderColor};\n border-style: solid;\n ` : ''}\n height: fit-content;\n }\n\n #iconTitleDescWrapper {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n gap: 12px;\n }\n\n #iconContainer {\n min-width: 64px;\n max-width: 64px;\n aspect-ratio: 1;\n object-fit: cover;\n }\n\n #titleDescWrapper {\n flex-grow: 1;\n overflow: hidden;\n overflow-wrap: break-word;\n }\n\n #title {\n font-size: 16px;\n font-weight: 700;\n color: ${style.text.titleColor};\n margin-bottom: 4px;\n line-height: 24px;\n }\n\n #description {\n font-size: 14px;\n font-weight: 500;\n color: ${style.text.descriptionColor};\n line-height: 20px;\n }\n\n #buttonsContainer {\n display: flex;\n justify-content: space-between;\n min-height: 32px;\n gap: 8px;\n align-items: center;\n }\n\n #primaryButton, #secondaryButton {\n padding: 6px 24px;\n flex: 1;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n justify-content: center;\n height: max-content;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n }\n\n #primaryButton {\n background-color: ${style.buttons.primaryButton.buttonColor};\n color: ${style.buttons.primaryButton.textColor};\n border-radius: ${style.buttons.primaryButton.borderRadius}px;\n ${style.buttons.primaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.primaryButton.border.borderWidth}px;\n border-color: ${style.buttons.primaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #secondaryButton {\n background-color: ${style.buttons.secondaryButton.buttonColor};\n color: ${style.buttons.secondaryButton.textColor};\n border-radius: ${style.buttons.secondaryButton.borderRadius}px;\n ${style.buttons.secondaryButton.borderEnabled\n ? `\n border-width: ${style.buttons.secondaryButton.border.borderWidth}px;\n border-color: ${style.buttons.secondaryButton.border.borderColor};\n border-style: solid;\n `\n : 'border: none;'}\n }\n\n #primaryButton:hover, #secondaryButton:hover {\n opacity: 0.9;\n }\n `\n}\n\nexport const getBellIconStyles = (style) => {\n return `\n #bell_wrapper {\n position: fixed;\n cursor: pointer;\n background-color: ${style.card.backgroundColor};\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n z-index: 999999;\n }\n\n #bell_icon {\n display: block;\n width: 48px;\n height: 48px;\n }\n\n #bell_wrapper:hover {\n transform: scale(1.05);\n transition: transform 0.2s ease-in-out;\n }\n\n #bell_tooltip {\n display: none;\n background-color: #2b2e3e;\n color: #fff;\n border-radius: 4px;\n padding: 4px;\n white-space: nowrap;\n pointer-events: none;\n font-size: 14px;\n line-height: 1.4;\n }\n\n #gif_modal {\n display: none;\n background-color: #ffffff;\n padding: 4px;\n width: 400px;\n height: 256px;\n border-radius: 4px;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n cursor: default;\n }\n\n #gif_image {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n #close_modal {\n position: absolute;\n width: 24px;\n height: 24px;\n top: 8px;\n right: 8px;\n background: rgba(238, 238, 238, 0.8);\n text-align: center;\n line-height: 20px;\n border-radius: 4px;\n color: #000000;\n font-size: 22px;\n cursor: pointer;\n }\n `\n}\n","export const isChrome = () => {\n const ua = navigator.userAgent\n return ua.includes('Chrome') || ua.includes('CriOS')\n}\n\nexport const isFirefox = () => {\n const ua = navigator.userAgent\n return ua.includes('Firefox') || ua.includes('FxiOS')\n}\n\nexport const isSafari = () => {\n const ua = navigator.userAgent\n // Ignoring the False Positive of Safari on iOS devices because it gives Safari in all Browsers\n return ua.includes('Safari') &&\n !ua.includes('CriOS') &&\n !ua.includes('FxiOS') &&\n !ua.includes('Chrome') &&\n !ua.includes('Firefox')\n}\n","import { StorageManager, $ct } from '../util/storage'\nimport { isObject } from '../util/datatypes'\nimport {\n PUSH_SUBSCRIPTION_DATA,\n VAPID_MIGRATION_PROMPT_SHOWN,\n NOTIF_LAST_TIME,\n ACCOUNT_ID,\n POPUP_LOADING,\n OLD_SOFT_PROMPT_SELCTOR_ID\n} from '../util/constants'\nimport {\n urlBase64ToUint8Array\n} from '../util/encoder'\nimport { enablePush } from './webPushPrompt/prompt'\nimport { isChrome, isFirefox, isSafari } from '../util/helpers'\n\nexport default class NotificationHandler extends Array {\n #oldValues\n #logger\n #request\n #account\n #wizAlertJSPath\n #fcmPublicKey\n\n constructor ({\n logger,\n session,\n request,\n account\n }, values) {\n super()\n this.#wizAlertJSPath = 'https://d2r1yp2w7bby2u.cloudfront.net/js/wzrk_dialog.min.js'\n this.#fcmPublicKey = null\n this.#oldValues = values\n this.#logger = logger\n this.#request = request\n this.#account = account\n }\n\n push (...displayArgs) {\n if (StorageManager.readFromLSorCookie(ACCOUNT_ID)) {\n this.#setUpWebPush(displayArgs)\n return 0\n } else {\n this.#logger.error('Account ID is not set')\n }\n }\n\n enable (options = {}) {\n const { swPath, skipDialog } = options\n enablePush(this.#logger, this.#account, this.#request, swPath, skipDialog, this.#fcmPublicKey)\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#setUpWebPush(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #setUpWebPush (displayArgs) {\n if ($ct.webPushEnabled && displayArgs.length > 0) {\n this.#handleNotificationRegistration(displayArgs)\n } else if ($ct.webPushEnabled == null && displayArgs.length > 0) {\n $ct.notifApi.notifEnabledFromApi = true\n $ct.notifApi.displayArgs = displayArgs.slice()\n } else if ($ct.webPushEnabled === false && displayArgs.length > 0) {\n this.#logger.error('Make sure push notifications are fully enabled and integrated')\n }\n }\n\n setUpWebPushNotifications (subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsServiceUrl) {\n if (isChrome() || isFirefox()) {\n this.#setUpChromeFirefoxNotifications(subscriptionCallback, serviceWorkerPath)\n } else if (isSafari()) {\n this.#setUpSafariNotifications(subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath)\n }\n }\n\n setApplicationServerKey (applicationServerKey) {\n this.#fcmPublicKey = applicationServerKey\n }\n\n #isNativeWebPushSupported () {\n return 'PushManager' in window\n }\n\n #setUpSafariNotifications (subscriptionCallback, apnsWebPushId, apnsServiceUrl, serviceWorkerPath) {\n if (this.#isNativeWebPushSupported() && this.#fcmPublicKey != null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n window.Notification.requestPermission().then((permission) => {\n if (permission === 'granted') {\n const subscribeObj = {\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }\n this.#logger.info('Sub Obj' + JSON.stringify(subscribeObj))\n const subscribeForPush = () => {\n registration.pushManager.subscribe(subscribeObj).then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n applicationServerKey: this.#fcmPublicKey,\n userVisibleOnly: true\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n })\n }\n\n const serviceWorker = registration.installing || registration.waiting || registration.active\n if (serviceWorker && serviceWorker.state === 'activated') {\n // Already activated, proceed with subscription\n subscribeForPush()\n } else if (serviceWorker) {\n // Listen for state changes to handle activation\n serviceWorker.addEventListener('statechange', (event) => {\n if (event.target.state === 'activated') {\n this.#logger.info('Service Worker activated. Proceeding with subscription.')\n subscribeForPush()\n }\n })\n }\n }\n })\n })\n } else {\n // ensure that proper arguments are passed\n if (typeof apnsWebPushId === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push ID is supplied')\n }\n if (typeof apnsServiceUrl === 'undefined') {\n this.#logger.error('Ensure that APNS Web Push service path is supplied')\n }\n if ('safari' in window && 'pushNotification' in window.safari) {\n window.safari.pushNotification.requestPermission(\n apnsServiceUrl,\n apnsWebPushId, {}, (subscription) => {\n if (subscription.permission === 'granted') {\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n subscriptionData.endpoint = subscription.deviceToken\n subscriptionData.browser = 'Safari'\n this.#logger.info('Service Data Sent: ' + JSON.stringify({\n apnsServiceUrl,\n apnsWebPushId\n }))\n this.#logger.info('Subscription Data Received: ' + JSON.stringify(subscription))\n\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n\n this.#request.registerToken(subscriptionData)\n this.#logger.info('Safari Web Push registered. Device Token: ' + subscription.deviceToken)\n } else if (subscription.permission === 'denied') {\n this.#logger.info('Error subscribing to Safari web push')\n }\n })\n }\n }\n }\n\n /**\n * Sets up a service worker for WebPush(chrome/Firefox) push notifications and sends the data to LC\n */\n #setUpChromeFirefoxNotifications (subscriptionCallback, serviceWorkerPath) {\n let registrationScope = ''\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register(serviceWorkerPath).then((registration) => {\n if (typeof __wzrk_account_id !== 'undefined') { // eslint-disable-line\n // shopify accounts , since the service worker is not at root, serviceWorker.ready is never resolved.\n // hence add a timeout and hope serviceWroker is ready within that time.\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n }\n registrationScope = registration.scope\n\n // IF SERVICE WORKER IS AT ROOT, RETURN THE READY PROMISE\n // ELSE IF CHROME RETURN PROMISE AFTER 5 SECONDS\n // OR getRegistrations PROMISE IF ITS FIREFOX\n const rootDirRegex = /^(\\.?)(\\/?)([^/]*).js$/\n const isServiceWorkerAtRoot = rootDirRegex.test(serviceWorkerPath)\n if (isServiceWorkerAtRoot) {\n return navigator.serviceWorker.ready\n } else {\n if (isChrome()) {\n return new Promise(resolve => setTimeout(() => resolve(registration), 5000))\n } else {\n return navigator.serviceWorker.getRegistrations()\n }\n }\n }).then((serviceWorkerRegistration) => {\n // ITS AN ARRAY IN CASE OF FIREFOX, SO USE THE REGISTRATION WITH PROPER SCOPE\n if (isFirefox() && Array.isArray(serviceWorkerRegistration)) {\n serviceWorkerRegistration = serviceWorkerRegistration.filter((i) => i.scope === registrationScope)[0]\n }\n const subscribeObj = { userVisibleOnly: true }\n\n if (this.#fcmPublicKey != null) {\n subscribeObj.applicationServerKey = urlBase64ToUint8Array(this.#fcmPublicKey)\n }\n\n serviceWorkerRegistration.pushManager.subscribe(subscribeObj)\n .then((subscription) => {\n this.#logger.info('Service Worker registered. Endpoint: ' + subscription.endpoint)\n this.#logger.debug('Service Data Sent: ' + JSON.stringify(subscribeObj))\n this.#logger.debug('Subscription Data Received: ' + JSON.stringify(subscription))\n\n // convert the subscription keys to strings; this sets it up nicely for pushing to LC\n const subscriptionData = JSON.parse(JSON.stringify(subscription))\n\n // remove the common chrome/firefox endpoint at the beginning of the token\n if (isChrome()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Chrome'\n } else if (isFirefox()) {\n subscriptionData.endpoint = subscriptionData.endpoint.split('/').pop()\n subscriptionData.browser = 'Firefox'\n }\n StorageManager.saveToLSorCookie(PUSH_SUBSCRIPTION_DATA, subscriptionData)\n this.#request.registerToken(subscriptionData)\n\n if (typeof subscriptionCallback !== 'undefined' && typeof subscriptionCallback === 'function') {\n subscriptionCallback()\n }\n const existingBellWrapper = document.getElementById('bell_wrapper')\n if (existingBellWrapper) {\n existingBellWrapper.parentNode.removeChild(existingBellWrapper)\n }\n }).catch((error) => {\n // unsubscribe from webpush if error\n serviceWorkerRegistration.pushManager.getSubscription().then((subscription) => {\n if (subscription !== null) {\n subscription.unsubscribe().then((successful) => {\n // You've successfully unsubscribed\n this.#logger.info('Unsubscription successful')\n window.clevertap.notifications.push({\n skipDialog: true\n })\n }).catch((e) => {\n // Unsubscription failed\n this.#logger.error('Error unsubscribing: ' + e)\n })\n }\n })\n this.#logger.error('Error subscribing: ' + error)\n })\n }).catch((err) => {\n this.#logger.error('error registering service worker: ' + err)\n })\n }\n }\n\n #addWizAlertJS () {\n const scriptTag = document.createElement('script')\n scriptTag.setAttribute('type', 'text/javascript')\n scriptTag.setAttribute('id', 'wzrk-alert-js')\n scriptTag.setAttribute('src', this.#wizAlertJSPath)\n\n // add the script tag to the end of the body\n document.getElementsByTagName('body')[0].appendChild(scriptTag)\n\n return scriptTag\n }\n\n #removeWizAlertJS () {\n const scriptTag = document.getElementById('wzrk-alert-js')\n scriptTag.parentNode.removeChild(scriptTag)\n }\n\n #handleNotificationRegistration (displayArgs) {\n // make sure everything is specified\n let titleText\n let bodyText\n let okButtonText\n let rejectButtonText\n let okButtonColor\n let skipDialog\n let askAgainTimeInSeconds\n let okCallback\n let rejectCallback\n let subscriptionCallback\n let serviceWorkerPath\n let httpsPopupPath\n let httpsIframePath\n let apnsWebPushId\n let apnsWebPushServiceUrl\n const vapidSupportedAndMigrated = isSafari() && ('PushManager' in window) && StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && this.#fcmPublicKey !== null\n\n if (displayArgs.length === 1) {\n if (isObject(displayArgs[0])) {\n const notifObj = displayArgs[0]\n titleText = notifObj.titleText\n bodyText = notifObj.bodyText\n okButtonText = notifObj.okButtonText\n rejectButtonText = notifObj.rejectButtonText\n okButtonColor = notifObj.okButtonColor\n skipDialog = notifObj.skipDialog\n askAgainTimeInSeconds = notifObj.askAgainTimeInSeconds\n okCallback = notifObj.okCallback\n rejectCallback = notifObj.rejectCallback\n subscriptionCallback = notifObj.subscriptionCallback\n serviceWorkerPath = notifObj.serviceWorkerPath\n httpsPopupPath = notifObj.httpsPopupPath\n httpsIframePath = notifObj.httpsIframePath\n apnsWebPushId = notifObj.apnsWebPushId\n apnsWebPushServiceUrl = notifObj.apnsWebPushServiceUrl\n }\n } else {\n titleText = displayArgs[0]\n bodyText = displayArgs[1]\n okButtonText = displayArgs[2]\n rejectButtonText = displayArgs[3]\n okButtonColor = displayArgs[4]\n skipDialog = displayArgs[5]\n askAgainTimeInSeconds = displayArgs[6]\n }\n\n if (skipDialog == null) {\n skipDialog = false\n }\n\n if (serviceWorkerPath == null) {\n serviceWorkerPath = '/clevertap_sw.js'\n }\n\n // ensure that the browser supports notifications\n if (typeof navigator.serviceWorker === 'undefined') {\n return\n }\n\n const isHTTP = httpsPopupPath != null && httpsIframePath != null\n\n // make sure the site is on https for chrome notifications\n if (window.location.protocol !== 'https:' && document.location.hostname !== 'localhost' && !isHTTP) {\n this.#logger.error('Make sure you are https or localhost to register for notifications')\n return\n }\n\n /*\n If it is chrome or firefox and the nativeWebPush is not supported then return\n For Safari the APNs route is open if nativeWebPush is not supported\n */\n if (isChrome() || isFirefox()) {\n if (!this.#isNativeWebPushSupported()) {\n this.#logger.error('Web Push Notification is not supported on this browser')\n return\n }\n }\n\n // we check for the cookie in setUpChromeNotifications() the tokens may have changed\n\n if (!isHTTP) {\n const hasNotification = 'Notification' in window\n if (!hasNotification || Notification == null) {\n this.#logger.error('Notification not supported on this Device or Browser')\n return\n }\n // handle migrations from other services -> chrome notifications may have already been asked for before\n if (Notification.permission === 'granted' && (vapidSupportedAndMigrated || isChrome() || isFirefox())) {\n // skip the dialog and register\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n } else if (Notification.permission === 'denied') {\n // we've lost this profile :'(\n return\n }\n\n if (skipDialog) {\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n return\n }\n }\n\n // make sure the right parameters are passed\n if (!titleText || !bodyText || !okButtonText || !rejectButtonText) {\n this.#logger.error('Missing input parameters; please specify title, body, ok button and cancel button text')\n return\n }\n\n // make sure okButtonColor is formatted properly\n if (okButtonColor == null || !okButtonColor.match(/^#[a-f\\d]{6}$/i)) {\n okButtonColor = '#f28046' // default color for positive button\n }\n\n // make sure the user isn't asked for notifications more than askAgainTimeInSeconds\n const now = new Date().getTime() / 1000\n if ((StorageManager.getMetaProp(NOTIF_LAST_TIME)) == null) {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n } else {\n if (askAgainTimeInSeconds == null) {\n // 7 days by default\n askAgainTimeInSeconds = 7 * 24 * 60 * 60\n }\n\n const notifLastTime = StorageManager.getMetaProp(NOTIF_LAST_TIME)\n if (now - notifLastTime < askAgainTimeInSeconds) {\n if (!isSafari()) {\n return\n }\n // If Safari is migrated already or only APNS, then return\n if (vapidSupportedAndMigrated || this.#fcmPublicKey === null) {\n return\n }\n } else {\n StorageManager.setMetaProp(NOTIF_LAST_TIME, now)\n }\n }\n\n if (isSafari() && this.#isNativeWebPushSupported() && this.#fcmPublicKey !== null) {\n StorageManager.setMetaProp(VAPID_MIGRATION_PROMPT_SHOWN, true)\n }\n\n if (isHTTP) {\n // add the https iframe\n const httpsIframe = document.createElement('iframe')\n httpsIframe.setAttribute('style', 'display:none;')\n httpsIframe.setAttribute('src', httpsIframePath)\n document.body.appendChild(httpsIframe)\n window.addEventListener('message', (event) => {\n if (event.data != null) {\n let obj = {}\n try {\n obj = JSON.parse(event.data)\n } catch (e) {\n // not a call from our iframe\n return\n }\n if (obj.state != null) {\n if (obj.from === 'ct' && obj.state === 'not') {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n // redirect to popup.html\n window.open(httpsPopupPath)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n }\n }, false)\n } else {\n if (StorageManager.readFromLSorCookie(POPUP_LOADING) || document.getElementById(OLD_SOFT_PROMPT_SELCTOR_ID)) {\n this.#logger.debug('Soft prompt wrapper is already loading or loaded')\n return\n }\n\n StorageManager.saveToLSorCookie(POPUP_LOADING, true)\n this.#addWizAlertJS().onload = () => {\n StorageManager.saveToLSorCookie(POPUP_LOADING, false)\n // create our wizrocket popup\n window.wzrkPermissionPopup.wizAlert({\n title: titleText,\n body: bodyText,\n confirmButtonText: okButtonText,\n confirmButtonColor: okButtonColor,\n rejectButtonText: rejectButtonText\n }, (enabled) => { // callback function\n if (enabled) {\n // the user accepted on the dialog box\n if (typeof okCallback === 'function') {\n okCallback()\n }\n this.setUpWebPushNotifications(subscriptionCallback, serviceWorkerPath, apnsWebPushId, apnsWebPushServiceUrl)\n } else {\n if (typeof rejectCallback === 'function') {\n rejectCallback()\n }\n }\n this.#removeWizAlertJS()\n })\n }\n }\n }\n\n _enableWebPush (enabled, applicationServerKey) {\n $ct.webPushEnabled = enabled\n if (applicationServerKey != null) {\n this.setApplicationServerKey(applicationServerKey)\n }\n if ($ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#handleNotificationRegistration($ct.notifApi.displayArgs)\n } else if (!$ct.webPushEnabled && $ct.notifApi.notifEnabledFromApi) {\n this.#logger.error('Ensure that web push notifications are fully enabled and integrated before requesting them')\n }\n }\n}\n","export const BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40OTYyIDUuMjQzOTVDMTIuODM5MSA1LjAzMzE3IDEzLjI4NDcgNS4xNDY4OSAxMy40OTczIDUuNDg4NjdDMTMuNzIyMyA1Ljg1MDE4IDEzLjYwMDIgNi4zMjUxOCAxMy4yMzggNi41NDkwMkM3LjM5Mzk5IDEwLjE2MDYgMy41IDE2LjYyNTcgMy41IDI0LjAwMDNDMy41IDM1LjMyMjEgMTIuNjc4MiA0NC41MDAzIDI0IDQ0LjUwMDNDMjguMDA1NSA0NC41MDAzIDMxLjc0MjYgNDMuMzUxNSAzNC45IDQxLjM2NTVDMzUuMjYwOCA0MS4xMzg1IDM1Ljc0MTYgNDEuMjM4NiAzNS45NjY4IDQxLjYwMDZDMzYuMTc5MiA0MS45NDE5IDM2LjA4NSA0Mi4zOTExIDM1Ljc0NTIgNDIuNjA2QzMyLjM0NjggNDQuNzU1OSAyOC4zMTg3IDQ2LjAwMDMgMjQgNDYuMDAwM0MxMS44NDk3IDQ2LjAwMDMgMiAzNi4xNTA1IDIgMjQuMDAwM0MyIDE2LjA2NjkgNi4xOTkyMSA5LjExNDMyIDEyLjQ5NjIgNS4yNDM5NVpNMzguOCAzOS45MDAzQzM4LjggNDAuMzk3MyAzOC4zOTcxIDQwLjgwMDMgMzcuOSA0MC44MDAzQzM3LjQwMjkgNDAuODAwMyAzNyA0MC4zOTczIDM3IDM5LjkwMDNDMzcgMzkuNDAzMiAzNy40MDI5IDM5LjAwMDMgMzcuOSAzOS4wMDAzQzM4LjM5NzEgMzkuMDAwMyAzOC44IDM5LjQwMzIgMzguOCAzOS45MDAzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNCAxMkMyMi44OTU0IDEyIDIyIDEyLjg5NTQgMjIgMTRWMTQuMjUyQzE4LjU0OTUgMTUuMTQwMSAxNiAxOC4yNzIzIDE2IDIyVjI5LjVIMTUuNDc2OUMxNC42NjEyIDI5LjUgMTQgMzAuMTYxMiAxNCAzMC45NzY5VjMxLjAyMzFDMTQgMzEuODM4OCAxNC42NjEyIDMyLjUgMTUuNDc2OSAzMi41SDMyLjUyMzFDMzMuMzM4OCAzMi41IDM0IDMxLjgzODggMzQgMzEuMDIzMVYzMC45NzY5QzM0IDMwLjE2MTIgMzMuMzM4OCAyOS41IDMyLjUyMzEgMjkuNUgzMlYyMkMzMiAxOC4yNzIzIDI5LjQ1MDUgMTUuMTQwMSAyNiAxNC4yNTJWMTRDMjYgMTIuODk1NCAyNS4xMDQ2IDEyIDI0IDEyWk0yNiAzNFYzMy41SDIyVjM0QzIyIDM1LjEwNDYgMjIuODk1NCAzNiAyNCAzNkMyNS4xMDQ2IDM2IDI2IDM1LjEwNDYgMjYgMzRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'\nexport const PROMPT_BELL_BASE64 = 'PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMzIiIGZpbGw9IiMwMEFFQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMS45OTg2IDIwQzMwLjkxOTggMjAgMzAuMDQyOCAyMC44NzQ2IDMwLjA0MjggMjEuOTUzNEwzMC4wNDI5IDIxLjk3MzRDMjYuNTQzNCAyMi41NTM1IDIzLjg3NSAyNS41OTQzIDIzLjg3NSAyOS4yNTgyVjM4LjA5OTVIMjMuODczNUMyMy4wNTg5IDM4LjA5OTUgMjIuMzk4NCAzOC43NiAyMi4zOTg0IDM5LjU3NDZDMjIuMzk4NCA0MC4zODkzIDIzLjA1ODkgNDEuMDQ5NyAyMy44NzM1IDQxLjA0OTdIMjkuNzgxMlY0MS43ODQyQzI5Ljc4MTIgNDMuMDA3NyAzMC43NzMxIDQzLjk5OTYgMzEuOTk2NiA0My45OTk2QzMzLjIyMDIgNDMuOTk5NiAzNC4yMTIgNDMuMDA3NyAzNC4yMTIgNDEuNzg0MlY0MS4wNDk3SDQwLjEyMzNDNDAuOTM4IDQxLjA0OTcgNDEuNTk4NCA0MC4zODkzIDQxLjU5ODQgMzkuNTc0NkM0MS41OTg0IDM4Ljc2IDQwLjkzOCAzOC4wOTk1IDQwLjEyMzMgMzguMDk5NUg0MC4xMjEyVjI5LjI1ODJDNDAuMTIxMiAyNS41OTQ2IDM3LjQ1MzMgMjIuNTU0MiAzMy45NTQzIDIxLjk3MzZMMzMuOTU0NCAyMS45NTM0QzMzLjk1NDQgMjAuODc0NiAzMy4wNzc1IDIwIDMxLjk5ODYgMjBaIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCBvcGFjaXR5PSIwLjUiIHg9IjcuNSIgeT0iNy41IiB3aWR0aD0iNDkiIGhlaWdodD0iNDkiIHJ4PSIyNC41IiBzdHJva2U9IndoaXRlIi8+CjxyZWN0IG9wYWNpdHk9IjAuMyIgeD0iNC41IiB5PSI0LjUiIHdpZHRoPSI1NSIgaGVpZ2h0PSI1NSIgcng9IjI3LjUiIHN0cm9rZT0id2hpdGUiLz4KPHJlY3Qgb3BhY2l0eT0iMC44IiB4PSIxMC41IiB5PSIxMC41IiB3aWR0aD0iNDMiIGhlaWdodD0iNDMiIHJ4PSIyMS41IiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPgo='\n","import { getBellIconStyles, getBoxPromptStyles } from './promptStyles.js'\nimport { WEBPUSH_CONFIG, VAPID_MIGRATION_PROMPT_SHOWN, NEW_SOFT_PROMPT_SELCTOR_ID } from '../../util/constants.js'\nimport { StorageManager, $ct } from '../../util/storage.js'\nimport NotificationHandler from '../notification.js'\nimport { BELL_BASE64, PROMPT_BELL_BASE64 } from './promptConstants.js'\nimport { isSafari } from '../../util/helpers.js'\n\nlet appServerKey = null\nlet swPath = '/clevertap_sw.js'\nlet notificationHandler = null\n\nexport const processWebPushConfig = (webPushConfig, logger, request) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n\n const updatePushConfig = () => {\n $ct.pushConfig = webPushConfig\n StorageManager.saveToLSorCookie(WEBPUSH_CONFIG, webPushConfig)\n }\n\n if (webPushConfig.isPreview) {\n updatePushConfig()\n enablePush(logger, null, request)\n } else if (JSON.stringify(_pushConfig) !== JSON.stringify(webPushConfig)) {\n updatePushConfig()\n }\n}\nexport const enablePush = (logger, account, request, customSwPath, skipDialog, fcmPublicKey) => {\n const _pushConfig = StorageManager.readFromLSorCookie(WEBPUSH_CONFIG) || {}\n $ct.pushConfig = _pushConfig\n if (!$ct.pushConfig) {\n logger.error('Web Push config data not present')\n return\n }\n\n if (customSwPath) { swPath = customSwPath }\n\n notificationHandler = new NotificationHandler({ logger, session: {}, request, account })\n\n if (skipDialog) {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n }\n\n const { showBox, boxType, showBellIcon, isPreview } = $ct.pushConfig\n\n if (isPreview) {\n if ($ct.pushConfig.boxConfig) createNotificationBox($ct.pushConfig, fcmPublicKey)\n if ($ct.pushConfig.bellIconConfig) createBellIcon($ct.pushConfig)\n } else {\n if (showBox && boxType === 'new') createNotificationBox($ct.pushConfig, fcmPublicKey)\n if (showBellIcon) createBellIcon($ct.pushConfig)\n }\n}\n\nconst createElementWithAttributes = (tag, attributes = {}) => {\n const element = document.createElement(tag)\n Object.entries(attributes).forEach(([key, value]) => {\n element[key] = value\n })\n return element\n}\n\nexport const createNotificationBox = (configData, fcmPublicKey) => {\n if (document.getElementById(NEW_SOFT_PROMPT_SELCTOR_ID)) return\n\n const { boxConfig: { content, style } } = configData\n\n // Create the wrapper div\n const wrapper = createElementWithAttributes('div', { id: NEW_SOFT_PROMPT_SELCTOR_ID })\n const overlayDiv = createElementWithAttributes('div', { id: 'pnOverlay' })\n const pnCard = createElementWithAttributes('div', { id: 'pnCard' })\n\n const iconTitleDescWrapper = createElementWithAttributes('div', { id: 'iconTitleDescWrapper' })\n const iconContainer = createElementWithAttributes('img', {\n id: 'iconContainer',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${PROMPT_BELL_BASE64}` : content.icon.url\n })\n\n iconTitleDescWrapper.appendChild(iconContainer)\n\n const titleDescWrapper = createElementWithAttributes('div', { id: 'titleDescWrapper' })\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'title', textContent: content.title }))\n titleDescWrapper.appendChild(createElementWithAttributes('div', { id: 'description', textContent: content.description }))\n\n iconTitleDescWrapper.appendChild(titleDescWrapper)\n\n const buttonsContainer = createElementWithAttributes('div', { id: 'buttonsContainer' })\n\n const primaryButton = createElementWithAttributes('button', {\n id: 'primaryButton',\n textContent: content.buttons.primaryButtonText\n })\n const secondaryButton = createElementWithAttributes('button', {\n id: 'secondaryButton',\n textContent: content.buttons.secondaryButtonText\n })\n buttonsContainer.appendChild(secondaryButton)\n buttonsContainer.appendChild(primaryButton)\n\n pnCard.appendChild(iconTitleDescWrapper)\n pnCard.appendChild(buttonsContainer)\n\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBoxPromptStyles(style) })\n\n wrapper.appendChild(styleElement)\n wrapper.appendChild(pnCard)\n wrapper.appendChild(overlayDiv)\n\n setElementPosition(pnCard, style.card.position)\n\n if (!configData.isPreview) {\n if ('Notification' in window && Notification !== null) {\n if (Notification.permission === 'granted') {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n return\n } else if (Notification.permission === 'denied') {\n return\n }\n }\n }\n\n const now = new Date().getTime() / 1000\n const lastNotifTime = StorageManager.getMetaProp('webpush_last_notif_time')\n const popupFrequency = content.popupFrequency || 7 // number of days\n const shouldShowNotification = !lastNotifTime || now - lastNotifTime >= popupFrequency * 24 * 60 * 60\n\n if (shouldShowNotification) {\n if (!isSafari()) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n addEventListeners(wrapper)\n }\n } else {\n const vapidSupportedAndNotMigrated = ('PushManager' in window) && !StorageManager.getMetaProp(VAPID_MIGRATION_PROMPT_SHOWN) && fcmPublicKey !== null\n if (vapidSupportedAndNotMigrated) {\n document.body.appendChild(wrapper)\n if (!configData.isPreview) {\n addEventListeners(wrapper)\n StorageManager.setMetaProp('webpush_last_notif_time', now)\n }\n }\n }\n }\n}\n\nexport const createBellIcon = (configData) => {\n if (document.getElementById('bell_wrapper') || Notification.permission === 'granted') return\n\n const { bellIconConfig: { content, style } } = configData\n\n const bellWrapper = createElementWithAttributes('div', { id: 'bell_wrapper' })\n const bellIcon = createElementWithAttributes('img', {\n id: 'bell_icon',\n src: content.icon.type === 'default' ? `data:image/svg+xml;base64,${BELL_BASE64}` : content.icon.url\n })\n\n // For playing gif\n const gifModal = createElementWithAttributes('div', { id: 'gif_modal', style: 'display: none;' })\n const gifImage = createElementWithAttributes('img', {\n id: 'gif_image',\n src: 'https://d2r1yp2w7bby2u.cloudfront.net/js/permission_grant.gif'\n })\n const closeModal = createElementWithAttributes('div', { id: 'close_modal', innerHTML: '×' })\n\n gifModal.appendChild(gifImage)\n gifModal.appendChild(closeModal)\n\n bellWrapper.appendChild(bellIcon)\n bellWrapper.appendChild(gifModal)\n if (content.hoverText.enabled) {\n const tooltip = createElementWithAttributes('div', {\n id: 'bell_tooltip',\n textContent: content.hoverText.text\n })\n bellWrapper.appendChild(tooltip)\n }\n\n setElementPosition(bellWrapper, style.card.position)\n // Apply styles\n const styleElement = createElementWithAttributes('style', { textContent: getBellIconStyles(style) })\n\n document.head.appendChild(styleElement)\n document.body.appendChild(bellWrapper)\n\n if (!configData.isPreview) {\n addBellEventListeners(bellWrapper)\n }\n return bellWrapper\n}\n\nexport const setServerKey = (serverKey) => {\n appServerKey = serverKey\n}\n\nexport const addEventListeners = (wrapper) => {\n const primaryButton = wrapper.querySelector('#primaryButton')\n const secondaryButton = wrapper.querySelector('#secondaryButton')\n\n const removeWrapper = () => wrapper.parentNode?.removeChild(wrapper)\n\n primaryButton.addEventListener('click', () => {\n removeWrapper()\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n })\n\n secondaryButton.addEventListener('click', () => {\n removeWrapper()\n })\n}\n\nexport const addBellEventListeners = (bellWrapper) => {\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n bellIcon.addEventListener('click', () => {\n if (Notification.permission === 'denied') {\n toggleGifModal(bellWrapper)\n } else {\n notificationHandler.setApplicationServerKey(appServerKey)\n notificationHandler.setUpWebPushNotifications(null, swPath, null, null)\n if (Notification.permission === 'granted') {\n bellWrapper.remove()\n }\n }\n })\n bellIcon.addEventListener('mouseenter', () => displayTooltip(bellWrapper))\n bellIcon.addEventListener('mouseleave', () => clearTooltip(bellWrapper))\n bellWrapper.querySelector('#close_modal').addEventListener('click', () => toggleGifModal(bellWrapper))\n}\n\nexport const setElementPosition = (element, position) => {\n Object.assign(element.style, {\n inset: 'auto',\n transform: 'none'\n })\n\n const positions = {\n 'Top Right': { inset: '16px 16px auto auto' },\n 'Top Left': { inset: '16px auto auto 16px' },\n 'Bottom Right': { inset: 'auto 16px 16px auto' },\n 'Bottom Left': { inset: 'auto auto 16px 16px' },\n Center: { inset: '50%', transform: 'translate(-50%, -50%)' },\n Top: { inset: '16px auto auto 50%', transform: 'translateX(-50%)' },\n Bottom: { inset: 'auto auto 16px 50%', transform: 'translateX(-50%)' }\n }\n\n Object.assign(element.style, positions[position] || positions['top-right'])\n}\n\nconst displayTooltip = (bellWrapper) => {\n const gifModal = bellWrapper.querySelector('#gif_modal')\n if (gifModal.style.display === 'flex') {\n return\n }\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'flex'\n }\n\n const bellIcon = bellWrapper.querySelector('#bell_icon')\n const bellRect = bellIcon.getBoundingClientRect()\n var midX = window.innerWidth / 2\n var midY = window.innerHeight / 2\n bellWrapper.style['flex-direction'] = bellRect.y > midY ? 'column-reverse' : 'column'\n bellWrapper.style['align-items'] = bellRect.x > midX ? 'flex-end' : 'flex-start'\n}\n\nconst clearTooltip = (bellWrapper) => {\n const tooltip = bellWrapper.querySelector('#bell_tooltip')\n if (tooltip) {\n tooltip.style.display = 'none'\n }\n}\n\nconst toggleGifModal = (bellWrapper) => {\n clearTooltip(bellWrapper)\n const gifModal = bellWrapper.querySelector('#gif_modal')\n gifModal.style.display = gifModal.style.display === 'none' ? 'flex' : 'none'\n}\n","import {\n addToLocalProfileMap,\n arp,\n getCampaignObject,\n saveCampaignObject\n} from './clevertap'\n\nimport {\n CAMP_COOKIE_NAME,\n DISPLAY,\n GLOBAL,\n EV_COOKIE,\n NOTIFICATION_CLICKED,\n WZRK_PREFIX,\n WZRK_ID\n} from './constants'\n\nimport {\n getNow,\n getToday\n} from './datetime'\n\nimport { StorageManager, $ct } from './storage'\nimport RequestDispatcher from './requestDispatcher'\nimport { CTWebPopupImageOnly } from './web-popupImageonly/popupImageonly'\nimport { checkAndRegisterWebInboxElements, initializeWebInbox, processWebInboxSettings, hasWebInboxSettingsInLS, processInboxNotifs } from '../modules/web-inbox/helper'\nimport { renderVisualBuilder } from '../modules/visualBuilder/pageBuilder'\nimport { handleKVpairCampaign, renderPersonalisationBanner, renderPersonalisationCarousel, renderCustomHtml, handleJson } from './campaignRender/nativeDisplay'\nimport { appendScriptForCustomEvent, getCookieParams, incrementImpression, invokeExternalJs, mergeEventMap, setupClickEvent, staleDataUpdate } from './campaignRender/utilities'\nimport { renderPopUpImageOnly } from './campaignRender/webPopup'\nimport { processWebPushConfig } from '../modules/webPushPrompt/prompt'\n\nconst _tr = (msg, {\n device,\n session,\n request,\n logger\n}) => {\n const _device = device\n const _session = session\n const _request = request\n const _logger = logger\n let _wizCounter = 0\n // Campaign House keeping\n const doCampHouseKeeping = (targetingMsgJson) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const today = getToday()\n\n const incrCount = (obj, campaignId, excludeFromFreqCaps) => {\n let currentCount = 0\n let totalCount = 0\n if (obj[campaignId] != null) {\n currentCount = obj[campaignId]\n }\n currentCount++\n if (obj.tc != null) {\n totalCount = obj.tc\n }\n // if exclude from caps then dont add to total counts\n if (excludeFromFreqCaps < 0) {\n totalCount++\n }\n\n obj.tc = totalCount\n obj[campaignId] = currentCount\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n delete sessionStorage[CAMP_COOKIE_NAME]\n var campTypeObj = {}\n const campObj = getCampaignObject()\n if (targetingMsgJson.display.wtarget_type === 3 && campObj.hasOwnProperty('wi')) {\n campTypeObj = campObj.wi\n } else if ((targetingMsgJson.display.wtarget_type === 0 || targetingMsgJson.display.wtarget_type === 1) && campObj.hasOwnProperty('wp')) {\n campTypeObj = campObj.wp\n } else {\n campTypeObj = {}\n }\n if (campObj.hasOwnProperty('global')) {\n campTypeObj.wp = campObj\n }\n // global session limit. default is 1\n if (targetingMsgJson[DISPLAY].wmc == null) {\n targetingMsgJson[DISPLAY].wmc = 1\n }\n\n // global session limit for web inbox. default is 1\n if (targetingMsgJson[DISPLAY].wimc == null) {\n targetingMsgJson[DISPLAY].wimc = 1\n }\n\n var excludeFromFreqCaps = -1 // efc - Exclude from frequency caps\n let campaignSessionLimit = -1 // mdc - Once per session\n let campaignDailyLimit = -1 // tdc - Once per day\n let campaignTotalLimit = -1 // tlc - Once per user for the duration of campaign\n let totalDailyLimit = -1\n let totalSessionLimit = -1 // wmc - Web Popup Global Session Limit\n let totalInboxSessionLimit = -1 // wimc - Web Inbox Global Session Limit\n\n if (targetingMsgJson[DISPLAY].efc != null) { // exclude from frequency cap\n excludeFromFreqCaps = parseInt(targetingMsgJson[DISPLAY].efc, 10)\n }\n if (targetingMsgJson[DISPLAY].mdc != null) { // Campaign Session Limit\n campaignSessionLimit = parseInt(targetingMsgJson[DISPLAY].mdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tdc != null) { // No of web popups in a day per campaign\n campaignDailyLimit = parseInt(targetingMsgJson[DISPLAY].tdc, 10)\n }\n if (targetingMsgJson[DISPLAY].tlc != null) { // Total lifetime count\n campaignTotalLimit = parseInt(targetingMsgJson[DISPLAY].tlc, 10)\n }\n if (targetingMsgJson[DISPLAY].wmp != null) { // No of campaigns per day\n totalDailyLimit = parseInt(targetingMsgJson[DISPLAY].wmp, 10)\n }\n if (targetingMsgJson[DISPLAY].wmc != null) { // No of campaigns per session\n totalSessionLimit = parseInt(targetingMsgJson[DISPLAY].wmc, 10)\n }\n\n if (targetingMsgJson[DISPLAY].wimc != null) { // No of inbox campaigns per session\n totalInboxSessionLimit = parseInt(targetingMsgJson[DISPLAY].wimc, 10)\n }\n // session level capping\n var sessionObj = campTypeObj[_session.sessionId]\n if (sessionObj) {\n const campaignSessionCount = sessionObj[campaignId]\n const totalSessionCount = sessionObj.tc\n // dnd\n if (campaignSessionCount === 'dnd' && !$ct.dismissSpamControl) {\n return false\n }\n\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n // Inbox session\n if (totalInboxSessionLimit > 0 && totalSessionCount >= totalInboxSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n } else {\n // session\n if (totalSessionLimit > 0 && totalSessionCount >= totalSessionLimit && excludeFromFreqCaps < 0) {\n return false\n }\n }\n\n // campaign session\n if (campaignSessionLimit > 0 && campaignSessionCount >= campaignSessionLimit) {\n return false\n }\n } else {\n sessionObj = {}\n campTypeObj[_session.sessionId] = sessionObj\n }\n\n // daily level capping\n var dailyObj = campTypeObj[today]\n if (dailyObj != null) {\n const campaignDailyCount = dailyObj[campaignId]\n const totalDailyCount = dailyObj.tc\n // daily\n if (totalDailyLimit > 0 && totalDailyCount >= totalDailyLimit && excludeFromFreqCaps < 0) {\n return false\n }\n // campaign daily\n if (campaignDailyLimit > 0 && campaignDailyCount >= campaignDailyLimit) {\n return false\n }\n } else {\n dailyObj = {}\n campTypeObj[today] = dailyObj\n }\n\n var globalObj = campTypeObj[GLOBAL]\n if (globalObj != null) {\n const campaignTotalCount = globalObj[campaignId]\n // campaign total\n if (campaignTotalLimit > 0 && campaignTotalCount >= campaignTotalLimit) {\n return false\n }\n } else {\n globalObj = {}\n campTypeObj[GLOBAL] = globalObj\n }\n }\n // delay\n const displayObj = targetingMsgJson.display\n if (displayObj.delay != null && displayObj.delay > 0) {\n const delay = displayObj.delay\n displayObj.delay = 0\n setTimeout(_tr, delay * 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n return false\n }\n\n incrCount(sessionObj, campaignId, excludeFromFreqCaps)\n incrCount(dailyObj, campaignId, excludeFromFreqCaps)\n incrCount(globalObj, campaignId, excludeFromFreqCaps)\n\n let campKey = 'wp'\n if (targetingMsgJson[DISPLAY].wtarget_type === 3) {\n campKey = 'wi'\n }\n // get ride of stale sessions and day entries\n const newCampObj = {}\n newCampObj[_session.sessionId] = sessionObj\n newCampObj[today] = dailyObj\n newCampObj[GLOBAL] = globalObj\n saveCampaignObject({ [campKey]: newCampObj })\n }\n\n const setupClickUrl = (onClick, targetingMsgJson, contentDiv, divId, isLegacy) => {\n incrementImpression(targetingMsgJson, _request)\n setupClickEvent(onClick, targetingMsgJson, contentDiv, divId, isLegacy, _device, _session)\n }\n\n const handleImageOnlyPopup = (targetingMsgJson) => {\n const divId = 'wzrkImageOnlyDiv'\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n element.remove()\n }\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist\n if (document.getElementById(divId) != null || document.getElementById('intentPreview') != null) {\n return\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n document.body.appendChild(msgDiv)\n if (customElements.get('ct-web-popup-imageonly') === undefined) {\n customElements.define('ct-web-popup-imageonly', CTWebPopupImageOnly)\n }\n return renderPopUpImageOnly(targetingMsgJson, _session)\n }\n\n const isExistingCampaign = (campaignId) => {\n const testIframe = document.getElementById('wiz-iframe-intent') || document.getElementById('wiz-iframe')\n if (testIframe) {\n const iframeDocument = testIframe.contentDocument || testIframe.contentWindow.document\n return iframeDocument.documentElement.innerHTML.includes(campaignId)\n }\n return false\n }\n\n const createTemplate = (targetingMsgJson, isExitIntent) => {\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const displayObj = targetingMsgJson.display\n\n if (displayObj.layout === 1) { // Handling Web Exit Intent\n return showExitIntent(undefined, targetingMsgJson)\n }\n if (displayObj.layout === 3) { // Handling Web Popup Image Only\n handleImageOnlyPopup(targetingMsgJson)\n return\n }\n\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n const divId = 'wizParDiv' + displayObj.layout\n const opacityDivId = 'intentOpacityDiv' + displayObj.layout\n\n if ($ct.dismissSpamControl && document.getElementById(divId) != null) {\n const element = document.getElementById(divId)\n const opacityElement = document.getElementById(opacityDivId)\n if (element) {\n element.remove()\n }\n if (opacityElement) {\n opacityElement.remove()\n }\n }\n if (isExistingCampaign(campaignId)) return\n\n if (document.getElementById(divId) != null) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = divId\n const isBanner = displayObj.layout === 2\n if (isExitIntent) {\n const opacityDiv = document.createElement('div')\n opacityDiv.id = opacityDivId\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n }\n const msgDiv = document.createElement('div')\n msgDiv.id = divId\n const viewHeight = window.innerHeight\n const viewWidth = window.innerWidth\n let legacy = false\n if (!isBanner) {\n const marginBottom = viewHeight * 5 / 100\n var contentHeight = 10\n let right = viewWidth * 5 / 100\n let bottomPosition = contentHeight + marginBottom\n let width = viewWidth * 30 / 100 + 20\n let widthPerct = 'width:30%;'\n // for small devices - mobile phones\n if ((/mobile/i.test(navigator.userAgent) || (/mini/i.test(navigator.userAgent))) && /iPad/i.test(navigator.userAgent) === false) {\n width = viewWidth * 85 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:80%;'\n // medium devices - tablets\n } else if ('ontouchstart' in window || (/tablet/i.test(navigator.userAgent))) {\n width = viewWidth * 50 / 100 + 20\n right = viewWidth * 5 / 100\n bottomPosition = viewHeight * 5 / 100\n widthPerct = 'width:50%;'\n }\n // legacy footer notif\n if (displayObj.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden; bottom:' + bottomPosition + 'px !important;width:' + width + 'px !important;right:' + right + 'px !important;position:fixed;z-index:2147483647;')\n } else {\n msgDiv.setAttribute('style', widthPerct + displayObj.iFrameStyle)\n }\n } else {\n msgDiv.setAttribute('style', displayObj.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n\n const borderRadius = displayObj.br === false ? '0' : '8'\n\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (displayObj.preview) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox allow-same-origin'\n }\n\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, leftTd, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n leftTd = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n leftTd = '#f4f4f4'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"\"\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'\" + divId + \"');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"\" +\n // \"\"+\n '' + imageTd + \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
'\n html = css + title + body\n }\n\n iframe.setAttribute('style', 'z-index: 2147483647; display:block; width: 100% !important; border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for popup box/banner close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (displayObj['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n const adjustIFrameHeight = () => {\n // adjust iframe and body height of html inside correctly\n contentHeight = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv').scrollHeight\n if (displayObj['custom-editor'] !== true && !isBanner) {\n contentHeight += 25\n }\n document.getElementById('wiz-iframe').contentDocument.body.style.margin = '0px'\n document.getElementById('wiz-iframe').style.height = contentHeight + 'px'\n }\n\n const ua = navigator.userAgent.toLowerCase()\n if (ua.indexOf('safari') !== -1) {\n if (ua.indexOf('chrome') > -1) {\n iframe.onload = () => {\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n } else {\n let inDoc = iframe.contentDocument || iframe.contentWindow\n if (inDoc.document) inDoc = inDoc.document\n // safari iphone 7+ needs this.\n const _timer = setInterval(() => {\n if (inDoc.readyState === 'complete') {\n clearInterval(_timer)\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }, 300)\n }\n } else {\n iframe.onload = () => {\n // adjust iframe and body height of html inside correctly\n adjustIFrameHeight()\n const contentDiv = document.getElementById('wiz-iframe').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, divId, legacy)\n }\n }\n }\n const renderFooterNotification = (targetingMsgJson) => {\n createTemplate(targetingMsgJson, false)\n }\n\n let _callBackCalled = false\n\n const showFooterNotification = (targetingMsgJson) => {\n let onClick = targetingMsgJson.display.onClick\n const displayObj = targetingMsgJson.display\n\n // TODO: Needs wizrocket as a global variable\n if (window.clevertap.hasOwnProperty('notificationCallback') &&\n typeof window.clevertap.notificationCallback !== 'undefined' &&\n typeof window.clevertap.notificationCallback === 'function') {\n const notificationCallback = window.clevertap.notificationCallback\n\n if (!_callBackCalled) {\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n window.clevertap.raiseNotificationClicked = () => {\n if (onClick !== '' && onClick != null) {\n const jsFunc = targetingMsgJson.display.jsFunc\n onClick += getCookieParams(_device, _session)\n\n // invoke js function call\n if (jsFunc != null) {\n // track notification clicked event\n RequestDispatcher.fireRequest(onClick)\n invokeExternalJs(jsFunc, targetingMsgJson)\n return\n }\n // pass on the gcookie|page|scookieId for capturing the click event\n if (targetingMsgJson.display.window === 1) {\n window.open(onClick, '_blank')\n } else {\n window.location = onClick\n }\n }\n }\n window.clevertap.raiseNotificationViewed = () => {\n incrementImpression(targetingMsgJson)\n }\n notificationCallback(inaObj)\n _callBackCalled = true\n }\n } else {\n window.clevertap.popupCurrentWzrkId = targetingMsgJson.wzrk_id\n\n if (displayObj.deliveryTrigger) {\n if (displayObj.deliveryTrigger.inactive) {\n triggerByInactivity(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.scroll) {\n triggerByScroll(targetingMsgJson)\n }\n if (displayObj.deliveryTrigger.isExitIntent) {\n exitintentObj = targetingMsgJson\n window.document.body.onmouseleave = showExitIntent\n }\n // delay\n const delay = displayObj.delay || displayObj.deliveryTrigger.deliveryDelayed\n if (delay != null && delay > 0) {\n setTimeout(() => {\n renderFooterNotification(targetingMsgJson)\n }, delay * 1000)\n }\n } else {\n renderFooterNotification(targetingMsgJson)\n }\n\n if (window.clevertap.hasOwnProperty('popupCallbacks') &&\n typeof window.clevertap.popupCallbacks !== 'undefined' &&\n typeof window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id] === 'function') {\n const popupCallback = window.clevertap.popupCallbacks[targetingMsgJson.wzrk_id]\n\n const inaObj = {}\n inaObj.msgContent = targetingMsgJson.msgContent\n inaObj.msgId = targetingMsgJson.wzrk_id\n\n if (targetingMsgJson.wzrk_pivot) {\n inaObj.pivotId = targetingMsgJson.wzrk_pivot\n }\n\n var msgCTkv = []\n for (var wzrkPrefixKey in targetingMsgJson) {\n // ADD WZRK PREFIX KEY VALUE PAIRS\n if (wzrkPrefixKey.startsWith(WZRK_PREFIX) && wzrkPrefixKey !== WZRK_ID) {\n const wzrkJson = { [wzrkPrefixKey]: targetingMsgJson[wzrkPrefixKey] }\n msgCTkv.push(wzrkJson)\n }\n }\n\n if (msgCTkv.length > 0) {\n inaObj.msgCTkv = msgCTkv\n }\n if (targetingMsgJson.display.kv != null) {\n inaObj.kv = targetingMsgJson.display.kv\n }\n\n // PUBLIC API TO RECORD CLICKED EVENT\n window.clevertap.raisePopupNotificationClicked = (notificationData) => {\n if (!notificationData || !notificationData.msgId) { return }\n\n const eventData = {}\n eventData.type = 'event'\n eventData.evtName = NOTIFICATION_CLICKED\n eventData.evtData = { [WZRK_ID]: notificationData.msgId }\n if (targetingMsgJson.wzrk_pivot) {\n eventData.evtData = { ...eventData.evtData, wzrk_pivot: notificationData.pivotId }\n }\n\n // WZRK PREFIX KEY VALUE PAIRS\n if (notificationData.msgCTkv) {\n for (var wzrkPrefixObj of notificationData.msgCTkv) {\n eventData.evtData = { ...eventData.evtData, ...wzrkPrefixObj }\n }\n }\n\n _request.processEvent(eventData)\n }\n popupCallback(inaObj)\n }\n }\n }\n\n const triggerByInactivity = (targetNotif) => {\n const IDLE_TIME_THRESHOLD = targetNotif.display.deliveryTrigger.inactive * 1000 // Convert to milliseconds\n let idleTimer\n const events = ['mousemove', 'keypress', 'scroll', 'mousedown', 'touchmove', 'click']\n const resetIdleTimer = () => {\n clearTimeout(idleTimer)\n idleTimer = setTimeout(() => {\n renderFooterNotification(targetNotif)\n removeEventListeners()\n }, IDLE_TIME_THRESHOLD)\n }\n const eventHandler = () => {\n resetIdleTimer()\n }\n const setupEventListeners = () => {\n events.forEach(eventType => window.addEventListener(eventType, eventHandler, { passive: true }))\n }\n const removeEventListeners = () => {\n events.forEach(eventType => window.removeEventListener(eventType, eventHandler))\n }\n setupEventListeners()\n resetIdleTimer()\n return removeEventListeners// Return a cleanup function\n }\n\n const triggerByScroll = (targetNotif) => {\n const calculateScrollPercentage = () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement\n return (scrollTop / (scrollHeight - clientHeight)) * 100\n }\n const scrollListener = () => {\n const scrollPercentage = calculateScrollPercentage()\n if (scrollPercentage >= targetNotif.display.deliveryTrigger.scroll) {\n renderFooterNotification(targetNotif)\n window.removeEventListener('scroll', throttledScrollListener)\n }\n }\n const throttle = (func, limit) => {\n let inThrottle = false\n return function (...args) {\n const context = this\n if (!inThrottle) {\n func.apply(context, args)\n inThrottle = true\n setTimeout(() => {\n inThrottle = false\n }, limit)\n }\n }\n }\n const throttledScrollListener = throttle(scrollListener, 200)\n window.addEventListener('scroll', throttledScrollListener, { passive: true })\n return () => window.removeEventListener('scroll', throttledScrollListener)// Return a cleanup function\n }\n\n let exitintentObj\n const showExitIntent = (event, targetObj) => {\n if (event?.clientY > 0) return\n const targetingMsgJson = targetObj || exitintentObj\n\n const campaignId = targetingMsgJson.wzrk_id.split('_')[0]\n const layout = targetingMsgJson.display.layout\n if (isExistingCampaign(campaignId)) return\n\n if (targetingMsgJson.display.wtarget_type === 0 && (layout === 0 || layout === 2 || layout === 3)) {\n createTemplate(targetingMsgJson, true)\n return\n }\n if (doCampHouseKeeping(targetingMsgJson) === false) {\n return\n }\n\n if ($ct.dismissSpamControl && targetingMsgJson.display.wtarget_type === 0) {\n const intentPreview = document.getElementById('intentPreview')\n const intentOpacityDiv = document.getElementById('intentOpacityDiv')\n if (intentPreview && intentOpacityDiv) {\n intentPreview.remove()\n intentOpacityDiv.remove()\n }\n }\n\n // ImageOnly campaign and Interstitial/Exit Intent shouldn't coexist`\n if (document.getElementById('intentPreview') != null || document.getElementById('wzrkImageOnlyDiv') != null) {\n return\n }\n // dont show exit intent on tablet/mobile - only on desktop\n if (targetingMsgJson.display.layout == null &&\n ((/mobile/i.test(navigator.userAgent)) || (/mini/i.test(navigator.userAgent)) || (/iPad/i.test(navigator.userAgent)) ||\n ('ontouchstart' in window) || (/tablet/i.test(navigator.userAgent)))) {\n return\n }\n\n $ct.campaignDivMap[campaignId] = 'intentPreview'\n let legacy = false\n const opacityDiv = document.createElement('div')\n opacityDiv.id = 'intentOpacityDiv'\n const opacity = targetingMsgJson.display.opacity || 0.7\n const rgbaColor = `rgba(0,0,0,${opacity})`\n opacityDiv.setAttribute('style', `position: fixed;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;z-index: 2147483646;background: ${rgbaColor};`)\n document.body.appendChild(opacityDiv)\n\n const msgDiv = document.createElement('div')\n msgDiv.id = 'intentPreview'\n\n if (targetingMsgJson.display.proto == null) {\n legacy = true\n msgDiv.setAttribute('style', 'display:block;overflow:hidden;top:55% !important;left:50% !important;position:fixed;z-index:2147483647;width:600px !important;height:600px !important;margin:-300px 0 0 -300px !important;')\n } else {\n msgDiv.setAttribute('style', targetingMsgJson.display.iFrameStyle)\n }\n document.body.appendChild(msgDiv)\n const iframe = document.createElement('iframe')\n const borderRadius = targetingMsgJson.display.br === false ? '0' : '8'\n iframe.frameborder = '0px'\n iframe.marginheight = '0px'\n iframe.marginwidth = '0px'\n iframe.scrolling = 'no'\n iframe.id = 'wiz-iframe-intent'\n const onClick = targetingMsgJson.display.onClick\n let pointerCss = ''\n if (onClick !== '' && onClick != null) {\n pointerCss = 'cursor:pointer;'\n }\n if (targetingMsgJson.display.preview && targetingMsgJson.display['custom-editor']) {\n iframe.sandbox = 'allow-scripts allow-popups allow-popups-to-escape-sandbox'\n }\n let html\n // direct html\n if (targetingMsgJson.msgContent.type === 1) {\n html = targetingMsgJson.msgContent.html\n html = html.replace(/##campaignId##/g, campaignId)\n html = html.replace(/##campaignId_batchId##/g, targetingMsgJson.wzrk_id)\n } else {\n const css = '' +\n ''\n\n let bgColor, textColor, btnBg, btColor\n if (targetingMsgJson.display.theme === 'dark') {\n bgColor = '#2d2d2e'\n textColor = '#eaeaea'\n btnBg = '#353535'\n btColor = '#ffffff'\n } else {\n bgColor = '#ffffff'\n textColor = '#000000'\n btnBg = '#a5a6a6'\n btColor = '#ffffff'\n }\n const titleText = targetingMsgJson.msgContent.title\n const descriptionText = targetingMsgJson.msgContent.description\n let ctaText = ''\n if (targetingMsgJson.msgContent.ctaText != null && targetingMsgJson.msgContent.ctaText !== '') {\n ctaText = \"'\n }\n\n let imageTd = ''\n if (targetingMsgJson.msgContent.imageUrl != null && targetingMsgJson.msgContent.imageUrl !== '') {\n imageTd = \"
\"
'\n }\n const onClickStr = 'parent.$WZRK_WR.closeIframe(' + campaignId + \",'intentPreview');\"\n const title = \"
\" +\n \"×\" +\n \"
\" +\n \"
\" + titleText + '
'\n const body = \"
\" + descriptionText + '
' + imageTd + ctaText +\n '
'\n html = css + title + body\n }\n iframe.setAttribute('style', 'color-scheme: none; z-index: 2147483647; display:block; height: 100% !important; width: 100% !important;min-height:80px !important;border:0px !important; border-color:none !important;')\n msgDiv.appendChild(iframe)\n\n // Dispatch event for interstitial/exit intent close\n const closeCampaign = new Event('CT_campaign_rendered')\n document.dispatchEvent(closeCampaign)\n\n if (targetingMsgJson.display['custom-editor']) {\n html = appendScriptForCustomEvent(targetingMsgJson, html)\n }\n iframe.srcdoc = html\n\n iframe.onload = () => {\n const contentDiv = document.getElementById('wiz-iframe-intent').contentDocument.getElementById('contentDiv')\n setupClickUrl(onClick, targetingMsgJson, contentDiv, 'intentPreview', legacy)\n }\n }\n\n if (!document.body) {\n if (_wizCounter < 6) {\n _wizCounter++\n setTimeout(_tr, 1000, msg, {\n device: _device,\n session: _session,\n request: _request,\n logger: _logger\n })\n }\n return\n }\n const processNativeDisplayArr = (arrInAppNotifs) => {\n Object.keys(arrInAppNotifs).map(key => {\n var elementId, id\n if (arrInAppNotifs[key].display.divId) {\n elementId = arrInAppNotifs[key].display.divId\n id = document.getElementById(elementId)\n } else {\n elementId = arrInAppNotifs[key].display.divSelector\n id = document.querySelector(elementId)\n }\n if (id !== null) {\n arrInAppNotifs[key].msgContent.type === 2 ? renderPersonalisationBanner(arrInAppNotifs[key]) : renderPersonalisationCarousel(arrInAppNotifs[key])\n delete arrInAppNotifs[key]\n }\n })\n }\n\n const addLoadListener = (arrInAppNotifs) => {\n window.addEventListener('load', () => {\n let count = 0\n if (count < 20) {\n const t = setInterval(() => {\n processNativeDisplayArr(arrInAppNotifs)\n if (Object.keys(arrInAppNotifs).length === 0 || count === 20) {\n clearInterval(t)\n arrInAppNotifs = {}\n }\n count++\n }, 500)\n }\n })\n }\n\n if (msg.inapp_notifs != null) {\n const arrInAppNotifs = {}\n for (let index = 0; index < msg.inapp_notifs.length; index++) {\n const targetNotif = msg.inapp_notifs[index]\n if (targetNotif.display.wtarget_type == null || targetNotif.display.wtarget_type === 0) {\n showFooterNotification(targetNotif)\n } else if (targetNotif.display.wtarget_type === 1) { // if display['wtarget_type']==1 then exit intent\n exitintentObj = targetNotif\n window.document.body.onmouseleave = showExitIntent\n } else if (targetNotif.display.wtarget_type === 2) { // if display['wtarget_type']==2 then web native display\n if (targetNotif.msgContent.type === 1) {\n handleKVpairCampaign(targetNotif)\n } else if (targetNotif.msgContent.type === 2 || targetNotif.msgContent.type === 3) { // Check for banner and carousel\n const element = targetNotif.display.divId ? document.getElementById(targetNotif.display.divId) : document.querySelector(targetNotif.display.divSelector)\n if (element !== null) {\n targetNotif.msgContent.type === 2 ? renderPersonalisationBanner(targetNotif) : renderPersonalisationCarousel(targetNotif)\n } else {\n arrInAppNotifs[targetNotif.wzrk_id.split('_')[0]] = targetNotif // Add targetNotif to object\n }\n } else if (targetNotif.msgContent.type === 4) {\n renderVisualBuilder(targetNotif, false)\n } else if (targetNotif.msgContent.type === 5) {\n renderCustomHtml(targetNotif, _logger)\n } else if (targetNotif.msgContent.type === 6) {\n handleJson(targetNotif, false)\n } else {\n showFooterNotification(targetNotif)\n }\n }\n }\n // Process banner or carousel campaign array\n if (Object.keys(arrInAppNotifs).length) {\n if (document.readyState === 'complete') {\n processNativeDisplayArr(arrInAppNotifs)\n } else {\n addLoadListener(arrInAppNotifs)\n }\n }\n }\n\n const handleInboxNotifications = () => {\n if (msg.inbox_preview) {\n processInboxNotifs(msg)\n return\n }\n if (msg.inbox_notifs) {\n const msgArr = []\n for (let index = 0; index < msg.inbox_notifs.length; index++) {\n if (doCampHouseKeeping(msg.inbox_notifs[index]) !== false) {\n msgArr.push(msg.inbox_notifs[index])\n }\n }\n processInboxNotifs(msgArr)\n }\n }\n\n if (msg.webInboxSetting || msg.inbox_notifs != null) {\n /**\n * When the user visits a website for the 1st time after web inbox channel is setup,\n * we need to initialise the inbox here because the initializeWebInbox method within init will not be executed\n * as we would not have any entry related to webInboxSettings in the LS\n */\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n }\n if ($ct.inbox === null) {\n msg.webInboxSetting && processWebInboxSettings(msg.webInboxSetting)\n initializeWebInbox(_logger)\n .then(() => {\n handleInboxNotifications()\n })\n .catch(e => {})\n } else {\n handleInboxNotifications()\n }\n }\n\n if (msg.webPushConfig) {\n processWebPushConfig(msg.webPushConfig, logger, request)\n }\n\n if (msg.vars) {\n $ct.variableStore.mergeVariables(msg.vars)\n return\n }\n\n if (StorageManager._isLocalStorageSupported()) {\n try {\n if (msg.evpr != null) {\n const eventsMap = msg.evpr.events\n const profileMap = msg.evpr.profile\n const syncExpiry = msg.evpr.expires_in\n const now = getNow()\n StorageManager.setMetaProp('lsTime', now)\n StorageManager.setMetaProp('exTs', syncExpiry)\n mergeEventMap(eventsMap)\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n if ($ct.globalProfileMap == null) {\n addToLocalProfileMap(profileMap, true)\n } else {\n addToLocalProfileMap(profileMap, false)\n }\n }\n if (msg.arp != null) {\n arp(msg.arp)\n }\n if (msg.inapp_stale != null && msg.inapp_stale.length > 0) {\n // web popup stale\n staleDataUpdate(msg.inapp_stale, 'wp')\n }\n if (msg.inbox_stale != null && msg.inbox_stale.length > 0) {\n // web inbox stale\n staleDataUpdate(msg.inbox_stale, 'wi')\n }\n } catch (e) {\n _logger.error('Unable to persist evrp/arp: ' + e)\n }\n }\n}\n\nexport default _tr\n","import {\n StorageManager\n} from '../util/storage'\nexport default class User {\n #isPersonalisationActive\n\n constructor ({\n isPersonalisationActive\n }) {\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n getTotalVisits () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n let visitCount = StorageManager.getMetaProp('sc')\n if (visitCount == null) {\n visitCount = 1\n }\n return visitCount\n }\n\n getLastVisit () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n const prevSession = StorageManager.getMetaProp('ps')\n if (prevSession != null) {\n return new Date(prevSession * 1000)\n }\n }\n}\n","import {\n CLEVERTAP_ERROR_PREFIX\n} from '../util/messages'\n\nexport const logLevels = {\n DISABLE: 0,\n ERROR: 1,\n INFO: 2,\n DEBUG: 3,\n DEBUG_PE: 4\n}\n\nexport class Logger {\n #logLevel\n wzrkError = {}\n constructor (logLevel) {\n this.#logLevel = logLevel == null ? logLevel : logLevels.INFO\n this.wzrkError = {}\n }\n\n get logLevel () {\n return this.#logLevel\n }\n\n set logLevel (logLevel) {\n this.#logLevel = logLevel\n }\n\n error (message) {\n if (this.#logLevel >= logLevels.ERROR) {\n this.#log('error', message)\n }\n }\n\n info (message) {\n if (this.#logLevel >= logLevels.INFO) {\n this.#log('log', message)\n }\n }\n\n debug (message) {\n if (this.#logLevel >= logLevels.DEBUG || this.#isLegacyDebug) {\n this.#log('debug', message)\n }\n }\n\n debugPE (message) {\n if (this.#logLevel >= logLevels.DEBUG_PE) {\n this.#log('debug_pe', message)\n }\n }\n\n reportError (code, description) {\n this.wzrkError.c = code\n this.wzrkError.d = description\n this.error(`${CLEVERTAP_ERROR_PREFIX} ${code}: ${description}`)\n }\n\n #log (level, message) {\n if (window.console) {\n try {\n const ts = new Date().getTime()\n console[level](`CleverTap [${ts}]: ${message}`)\n } catch (e) {}\n }\n }\n\n get #isLegacyDebug () {\n return (typeof sessionStorage !== 'undefined' && sessionStorage.WZRK_D === '')\n }\n}\n\nexport default {\n Logger,\n logLevels\n}\n","import { singleQuoteRegex, SCOOKIE_EXP_TIME_IN_SECS } from '../util/constants'\nimport { isObject } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { StorageManager } from '../util/storage'\nimport { getHostName } from '../util/url'\n\nexport default class SessionManager {\n #logger\n #sessionId\n #isPersonalisationActive\n cookieName // SCOOKIE_NAME\n scookieObj\n\n constructor ({\n logger,\n isPersonalisationActive\n }) {\n this.sessionId = StorageManager.getMetaProp('cs')\n this.#logger = logger\n this.#isPersonalisationActive = isPersonalisationActive\n }\n\n get sessionId () {\n return this.#sessionId\n }\n\n set sessionId (sessionId) {\n this.#sessionId = sessionId\n }\n\n getSessionCookieObject () {\n let scookieStr = StorageManager.readCookie(this.cookieName)\n let obj = {}\n\n if (scookieStr != null) {\n // converting back single quotes to double for JSON parsing - http://www.iandevlin.com/blog/2012/04/html5/cookies-json-localstorage-and-opera\n scookieStr = scookieStr.replace(singleQuoteRegex, '\"')\n\n obj = JSON.parse(scookieStr)\n if (!isObject(obj)) {\n obj = {}\n } else {\n if (typeof obj.t !== 'undefined') { // check time elapsed since last request\n const lastTime = obj.t\n const now = getNow()\n if ((now - lastTime) > (SCOOKIE_EXP_TIME_IN_SECS + 60)) {\n // adding 60 seconds to compensate for in-journey requests\n // ideally the cookie should've died after SCOOKIE_EXP_TIME_IN_SECS but it's still around as we can read\n // hence we shouldn't use it.\n obj = {}\n }\n }\n }\n }\n this.scookieObj = obj\n return obj\n }\n\n setSessionCookieObject (obj) {\n const objStr = JSON.stringify(obj)\n StorageManager.createBroadCookie(this.cookieName, objStr, SCOOKIE_EXP_TIME_IN_SECS, getHostName())\n }\n\n manageSession (session) {\n // first time. check if current session id in localstorage is same\n // if not same then prev = current and current = this new session\n if (typeof this.sessionId === 'undefined' || this.sessionId !== session) {\n const currentSessionInLS = StorageManager.getMetaProp('cs')\n // if sessionId in meta is undefined - set current to both\n if (typeof currentSessionInLS === 'undefined') {\n StorageManager.setMetaProp('ps', session)\n StorageManager.setMetaProp('cs', session)\n StorageManager.setMetaProp('sc', 1)\n } else if (currentSessionInLS !== session) {\n // not same as session in local storage. new session\n StorageManager.setMetaProp('ps', currentSessionInLS)\n StorageManager.setMetaProp('cs', session)\n let sessionCount = StorageManager.getMetaProp('sc')\n if (typeof sessionCount === 'undefined') {\n sessionCount = 0\n }\n StorageManager.setMetaProp('sc', sessionCount + 1)\n }\n this.sessionId = session\n }\n }\n\n getTimeElapsed () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n if (this.scookieObj != null) { // TODO: check logic?\n this.scookieObj = this.getSessionCookieObject()\n }\n const sessionStart = this.scookieObj.s\n if (sessionStart != null) {\n const ts = getNow()\n return Math.floor(ts - sessionStart)\n }\n }\n\n getPageCount () {\n if (!this.#isPersonalisationActive()) {\n return\n }\n\n if (this.scookieObj != null) { // TODO: check logic\n this.scookieObj = this.getSessionCookieObject()\n }\n return this.scookieObj.p\n }\n}\n","import { SCOOKIE_PREFIX, CAMP_COOKIE_NAME, CLEAR, EVT_PUSH, EV_COOKIE, FIRE_PUSH_UNREGISTERED, LCOOKIE_NAME, PUSH_SUBSCRIPTION_DATA, WEBPUSH_LS_KEY } from '../util/constants'\nimport { isObjectEmpty, isValueValid, removeUnsupportedChars } from '../util/datatypes'\nimport { getNow } from '../util/datetime'\nimport { compressData } from '../util/encoder'\nimport RequestDispatcher from '../util/requestDispatcher'\nimport { StorageManager, $ct } from '../util/storage'\nimport { addToURL } from '../util/url'\nimport { getCampaignObjForLc } from '../util/clevertap'\n\nlet seqNo = 0\nlet requestTime = 0\n\nexport default class RequestManager {\n #logger\n #account\n #device\n #session\n #isPersonalisationActive\n #clearCookie = false\n processingBackup = false\n\n constructor ({ logger, account, device, session, isPersonalisationActive }) {\n this.#logger = logger\n this.#account = account\n this.#device = device\n this.#session = session\n this.#isPersonalisationActive = isPersonalisationActive\n\n RequestDispatcher.logger = logger\n RequestDispatcher.device = device\n RequestDispatcher.account = account\n }\n\n processBackupEvents () {\n const backupMap = StorageManager.readFromLSorCookie(LCOOKIE_NAME)\n if (typeof backupMap === 'undefined' || backupMap === null) {\n return\n }\n this.processingBackup = true\n for (const idx in backupMap) {\n if (backupMap.hasOwnProperty(idx)) {\n const backupEvent = backupMap[idx]\n if (typeof backupEvent.fired === 'undefined') {\n this.#logger.debug('Processing backup event : ' + backupEvent.q)\n if (typeof backupEvent.q !== 'undefined') {\n /* For extremely slow networks we often recreate the session from the SE hence appending\n the session to the request */\n\n const session = JSON.parse(StorageManager.readCookie(SCOOKIE_PREFIX + '_' + this.#account.id))\n if (session?.s) {\n backupEvent.q = backupEvent.q + '&s=' + session.s\n }\n RequestDispatcher.fireRequest(backupEvent.q)\n }\n backupEvent.fired = true\n }\n }\n }\n StorageManager.saveToLSorCookie(LCOOKIE_NAME, backupMap)\n this.processingBackup = false\n }\n\n addSystemDataToObject (dataObject, ignoreTrim) {\n // ignore trim for chrome notifications; undefined everywhere else\n if (typeof ignoreTrim === 'undefined') {\n dataObject = removeUnsupportedChars(dataObject, this.#logger)\n }\n\n if (!isObjectEmpty(this.#logger.wzrkError)) {\n dataObject.wzrk_error = this.#logger.wzrkError\n this.#logger.wzrkError = {}\n }\n\n dataObject.id = this.#account.id\n\n if (isValueValid(this.#device.gcookie)) {\n dataObject.g = this.#device.gcookie\n }\n\n const obj = this.#session.getSessionCookieObject()\n dataObject.s = obj.s // session cookie\n dataObject.pg = (typeof obj.p === 'undefined') ? 1 : obj.p // Page count\n let proto = document.location.protocol\n proto = proto.replace(':', '')\n dataObject.af = { ...dataObject.af, lib: 'web-sdk-v$$PACKAGE_VERSION$$', protocol: proto, ...$ct.flutterVersion } // app fields\n if (sessionStorage.hasOwnProperty('WZRK_D')) { dataObject.debug = true }\n\n return dataObject\n }\n\n addFlags (data) {\n // check if cookie should be cleared.\n this.#clearCookie = StorageManager.getAndClearMetaProp(CLEAR)\n if (this.#clearCookie !== undefined && this.#clearCookie) {\n data.rc = true\n this.#logger.debug('reset cookie sent in request and cleared from meta for future requests.')\n }\n if (this.#isPersonalisationActive()) {\n const lastSyncTime = StorageManager.getMetaProp('lsTime')\n const expirySeconds = StorageManager.getMetaProp('exTs')\n\n // dsync not found in local storage - get data from server\n if (typeof lastSyncTime === 'undefined' || typeof expirySeconds === 'undefined') {\n data.dsync = true\n return\n }\n const now = getNow()\n // last sync time has expired - get fresh data from server\n if (lastSyncTime + expirySeconds < now) {\n data.dsync = true\n }\n }\n }\n\n // saves url to backup cache and fires the request\n /**\n *\n * @param {string} url\n * @param {boolean} override whether the request can go through or not\n * @param {Boolean} sendOULFlag - true in case of a On User Login request\n */\n saveAndFireRequest (url, override, sendOULFlag, evtName) {\n const now = getNow()\n url = addToURL(url, 'rn', ++$ct.globalCache.REQ_N)\n const data = url + '&i=' + now + '&sn=' + seqNo\n StorageManager.backupEvent(data, $ct.globalCache.REQ_N, this.#logger)\n\n // if offline is set to true, save the request in backup and return\n if ($ct.offline) return\n // if there is no override\n // and an OUL request is not in progress\n // then process the request as it is\n // else block the request\n // note - $ct.blockRequest should ideally be used for override\n if ((!override || (this.#clearCookie !== undefined && this.#clearCookie)) && !window.isOULInProgress) {\n if (now === requestTime) {\n seqNo++\n } else {\n requestTime = now\n seqNo = 0\n }\n window.oulReqN = $ct.globalCache.REQ_N\n RequestDispatcher.fireRequest(data, false, sendOULFlag, evtName)\n } else {\n this.#logger.debug(`Not fired due to override - ${$ct.blockRequest} or clearCookie - ${this.#clearCookie} or OUL request in progress - ${window.isOULInProgress}`)\n }\n }\n\n unregisterTokenForGuid (givenGUID) {\n const payload = StorageManager.readFromLSorCookie(PUSH_SUBSCRIPTION_DATA)\n // Send unregister event only when token is available\n if (payload) {\n const data = {}\n data.type = 'data'\n if (isValueValid(givenGUID)) {\n data.g = givenGUID\n }\n data.action = 'unregister'\n data.id = this.#account.id\n\n const obj = this.#session.getSessionCookieObject()\n\n data.s = obj.s // session cookie\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n RequestDispatcher.fireRequest(pageLoadUrl, true)\n StorageManager.saveToLSorCookie(FIRE_PUSH_UNREGISTERED, false)\n }\n // REGISTER TOKEN\n this.registerToken(payload)\n }\n\n registerToken (payload) {\n if (!payload) return\n // add gcookie etc to the payload\n payload = this.addSystemDataToObject(payload, true)\n payload = JSON.stringify(payload)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'data')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(payload, this.#logger))\n RequestDispatcher.fireRequest(pageLoadUrl)\n // set in localstorage\n StorageManager.save(WEBPUSH_LS_KEY, 'ok')\n }\n\n processEvent (data) {\n this.#addToLocalEventMap(data.evtName)\n data = this.addSystemDataToObject(data, undefined)\n this.addFlags(data)\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.saveAndFireRequest(pageLoadUrl, $ct.blockRequest, false, data.evtName)\n }\n\n #addToLocalEventMap (evtName) {\n if (StorageManager._isLocalStorageSupported()) {\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = StorageManager.readFromLSorCookie(EV_COOKIE)\n if (typeof $ct.globalEventsMap === 'undefined') {\n $ct.globalEventsMap = {}\n }\n }\n\n const nowTs = getNow()\n let evtDetail = $ct.globalEventsMap[evtName]\n if (typeof evtDetail !== 'undefined') {\n evtDetail[2] = nowTs\n evtDetail[0]++\n } else {\n evtDetail = []\n evtDetail.push(1)\n evtDetail.push(nowTs)\n evtDetail.push(nowTs)\n }\n $ct.globalEventsMap[evtName] = evtDetail\n StorageManager.saveToLSorCookie(EV_COOKIE, $ct.globalEventsMap)\n }\n }\n\n post (url, body) {\n return fetch(url, {\n method: 'post',\n headers: { 'Content-Type': 'application/json' },\n body: body\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n }\n throw response\n })\n .then((data) => {\n this.#logger.debug('Sync data successful', data)\n return data\n })\n .catch((e) => {\n this.#logger.debug('Error in syncing variables', e)\n throw e\n })\n }\n}\n","import {\n isObjectEmpty\n} from '../util/datatypes'\nimport {\n EVT_PUSH,\n USEIP_KEY,\n OPTOUT_KEY,\n CT_OPTOUT_KEY\n} from '../util/constants'\nimport {\n StorageManager,\n $ct\n} from '../util/storage'\nimport {\n compressData\n} from '../util/encoder'\nimport {\n addToURL\n} from '../util/url'\n\nexport default class Privacy extends Array {\n #request\n #account\n #oldValues\n #logger\n\n constructor ({\n request,\n account,\n logger\n },\n values) {\n super()\n this.#logger = logger\n this.#request = request\n this.#account = account\n this.#oldValues = values\n }\n\n // TODO : Do we need to check if account id is set or not here?\n push (...privacyArr) {\n if ($ct.isPrivacyArrPushed) {\n this.#processPrivacyArray($ct.privacyArray.length > 0 ? $ct.privacyArray : privacyArr)\n } else {\n $ct.privacyArray.push(...privacyArr)\n }\n return 0\n }\n\n _processOldValues () {\n if (this.#oldValues) {\n this.#processPrivacyArray(this.#oldValues)\n }\n this.#oldValues = null\n }\n\n #processPrivacyArray (privacyArr) {\n if (Array.isArray(privacyArr) && privacyArr.length > 0) {\n const privacyObj = privacyArr.reduce((prev, curr) => ({ ...prev, ...curr }), {})\n let data = {}\n const profileObj = {}\n var optOut = false\n\n if (privacyObj.hasOwnProperty(OPTOUT_KEY)) {\n optOut = privacyObj[OPTOUT_KEY]\n if (typeof optOut === 'boolean') {\n profileObj[CT_OPTOUT_KEY] = optOut\n // should be true when user wants to opt in\n $ct.isOptInRequest = !optOut\n }\n }\n if (privacyObj.hasOwnProperty(USEIP_KEY)) {\n const useIP = privacyObj[USEIP_KEY]\n const shouldUseIP = (typeof useIP === 'boolean') ? useIP : false\n StorageManager.setMetaProp(USEIP_KEY, shouldUseIP)\n }\n if (!isObjectEmpty(profileObj)) {\n data.type = 'profile'\n data.profile = profileObj\n data = this.#request.addSystemDataToObject(data, undefined)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n pageLoadUrl = addToURL(pageLoadUrl, OPTOUT_KEY, optOut ? 'true' : 'false')\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n privacyArr.splice(0, privacyArr.length)\n }\n }\n }\n}\n","export class Variable {\n #variableStore\n\n /**\n * Creates an instance of the Variable class.\n *\n * @constructor\n * @param {VariableStore} options.variableStore - The VariableStore instance for registration.\n * @param {string|null} options.name - The name of the variable.\n * @param {*} options.defaultValue - The default value of the variable.\n * @param {*} options.value - The current value of the variable.\n * @param {string|null} options.type - The type of the variable (string, number, boolean).\n * @param {boolean} options.hadStarted - A flag indicating whether the variable has started (used internally).\n * @param {Function[]} options.valueChangedCallbacks - Array to store callbacks to be executed when the variable value changes.\n */\n constructor ({ variableStore }) {\n this.name = null\n this.defaultValue = null\n this.value = null\n this.type = null\n this.hadStarted = false\n this.valueChangedCallbacks = []\n this.#variableStore = variableStore\n }\n\n getValue () {\n return this.value\n }\n\n getdefaultValue () {\n return this.defaultValue\n }\n\n /**\n * Defines a new variable with the provided name, default value, and variable store.\n * @static\n * @param {string} name - The name of the variable.\n * @param {*} defaultValue - The default value of the variable.\n * @param {VariableStore} variableStore - The VariableStore instance for registration.\n * @returns {Variable|null} - The created Variable instance or null if invalid parameters are provided.\n */\n static define (name, defaultValue, variableStore) {\n if (!name || typeof name !== 'string') {\n console.error('Empty or invalid name parameter provided.')\n return null\n }\n if (name.startsWith('.') || name.endsWith('.')) {\n console.error('Variable name starts or ends with a `.` which is not allowed: ' + name)\n return null\n }\n\n const typeOfDefaultValue = typeof defaultValue\n if (typeOfDefaultValue !== 'string' && typeOfDefaultValue !== 'number' && typeOfDefaultValue !== 'boolean') {\n console.error('Only primitive types (string, number, boolean) are accepted as value')\n return null\n }\n\n const existing = variableStore.getVariable(name)\n if (existing) {\n return existing\n }\n\n const varInstance = new Variable({ variableStore })\n try {\n varInstance.name = name\n varInstance.defaultValue = defaultValue\n varInstance.value = defaultValue\n varInstance.type = typeOfDefaultValue\n variableStore.registerVariable(varInstance)\n varInstance.update(defaultValue)\n } catch (error) {\n console.error(error)\n }\n return varInstance\n }\n\n /**\n * Updates the variable's value, triggering callbacks if hasVarsRequestCompleted is returned true.\n * @param {*} newValue - The new value to be assigned to the variable.\n */\n update (newValue) {\n const oldValue = this.value\n this.value = newValue\n if (newValue === null && oldValue === null) {\n return\n }\n if (newValue !== null && newValue === oldValue && this.hadStarted) {\n return\n }\n if (this.#variableStore.hasVarsRequestCompleted()) {\n this.hadStarted = true\n this.triggerValueChanged()\n }\n }\n\n /**\n * Invokes all registered callbacks when the variable value changes.\n */\n triggerValueChanged () {\n this.valueChangedCallbacks.forEach((onValueChanged) => {\n onValueChanged(this)\n })\n }\n\n /**\n * Adds a callback function to the array and triggers it immediately if variable requests have completed.\n * @param {Function} onValueChanged - The callback function to be added.\n */\n addValueChangedCallback (onValueChanged) {\n if (!onValueChanged) {\n console.log('Invalid callback parameter provided.')\n return\n }\n this.valueChangedCallbacks.push(onValueChanged)\n\n if (this.#variableStore.hasVarsRequestCompleted()) {\n onValueChanged(this)\n }\n }\n\n /**\n * Removes a callback function from the array.\n * @param {Function} onValueChanged - The callback function to be removed.\n */\n removeValueChangedCallback (onValueChanged) {\n const index = this.valueChangedCallbacks.indexOf(onValueChanged)\n if (index !== -1) {\n this.valueChangedCallbacks.splice(index, 1)\n }\n }\n\n /**\n * Resets the `hadStarted` flag to false.\n */\n clearStartFlag () {\n this.hadStarted = false\n }\n}\n","import { VARIABLES, WZRK_FETCH } from '../../util/constants'\nimport { StorageManager, $ct } from '../../util/storage'\nclass VariableStore {\n #logger\n #account\n #request\n #event\n\n #variables\n #remoteVariables\n #fetchCallback\n #variablesChangedCallbacks\n #oneTimeVariablesChangedCallbacks\n #hasVarsRequestCompleted = false\n\n constructor ({ logger, request, account, event }) {\n this.#logger = logger\n this.#account = account\n this.#request = request\n this.#event = event\n\n this.#variables = {}\n this.#remoteVariables = {}\n this.#variablesChangedCallbacks = []\n this.#oneTimeVariablesChangedCallbacks = []\n\n $ct.variableStore = this\n }\n\n /**\n * Registers a variable instance in the store.\n * @param {Object} varInstance - The variable instance to be registered.\n */\n registerVariable (varInstance) {\n const { name } = varInstance\n this.#variables[name] = varInstance\n console.log('registerVariable', this.#variables)\n }\n\n /**\n * Retrieves a variable by its name.\n * @param {string} name - The name of the variable to retrieve.\n * @returns {Object} - The variable instance.\n */\n getVariable (name) {\n return this.#variables[name]\n }\n\n hasVarsRequestCompleted () {\n return this.#hasVarsRequestCompleted\n }\n\n /**\n * Synchronizes variables with the server.\n * @param {Function} onSyncSuccess - Callback function on successful synchronization.\n * @param {Function} onSyncFailure - Callback function on synchronization failure.\n * @throws Will throw an error if the account token is missing.\n * @returns {Promise} - The result of the synchronization request.\n */\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (!this.#account.token) {\n const m = 'Account token is missing.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n const payload = {\n type: 'varsPayload',\n vars: {}\n }\n\n for (const name in this.#variables) {\n payload.vars[name] = {\n defaultValue: this.#variables[name].defaultValue,\n type: this.#variables[name].type\n }\n }\n\n // Check if payload.vars is empty\n if (Object.keys(payload.vars).length === 0) {\n const m = 'No variables are defined.'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n\n let meta = {}\n meta = this.#request.addSystemDataToObject(meta, undefined)\n meta.tk = this.#account.token\n\n meta.type = 'meta'\n const body = JSON.stringify([meta, payload])\n const url = this.#account.dataPostPEURL\n\n return this.#request.post(url, body)\n .then((r) => {\n if (onSyncSuccess && typeof onSyncSuccess === 'function') {\n onSyncSuccess(r)\n }\n return r\n })\n .catch((e) => {\n if (onSyncFailure && typeof onSyncFailure === 'function') {\n onSyncFailure(e)\n }\n if (e.status === 400) {\n this.#logger.error('Invalid sync payload or clear the existing draft')\n } else if (e.status === 401) {\n this.#logger.error('This is not a test profile')\n } else {\n this.#logger.error('Sync variable failed')\n }\n throw e\n })\n }\n\n /**\n * Fetches variables from the server.\n * @param {Function} onFetchCallback - Callback function on fetch completion.\n */\n fetchVariables (onFetchCallback) {\n this.#event.push(WZRK_FETCH, { t: 4 })\n if (onFetchCallback && typeof onFetchCallback === 'function') {\n this.#fetchCallback = onFetchCallback\n }\n }\n\n mergeVariables (vars) {\n console.log('msg vars is ', vars)\n this.#hasVarsRequestCompleted = true\n\n StorageManager.saveToLSorCookie(VARIABLES, vars)\n this.#remoteVariables = vars\n\n for (const name in this.#variables) {\n if (vars.hasOwnProperty(name)) {\n this.#variables[name].update(vars[name])\n }\n }\n\n if (this.#fetchCallback) {\n this.#fetchCallback()\n }\n\n this.#runVariablesChangedCallback()\n }\n\n addVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n this.#variablesChangedCallbacks.push(callback)\n\n if (this.hasVarsRequestCompleted()) {\n callback()\n }\n } else {\n this.#logger.error('callback is not a function')\n }\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n if (callback && typeof callback === 'function') {\n if (this.hasVarsRequestCompleted()) {\n callback()\n } else {\n this.#oneTimeVariablesChangedCallbacks.push(callback)\n }\n }\n }\n\n removeVariablesChangedCallback (callback) {\n const index = this.#variablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#variablesChangedCallbacks.splice(index, 1)\n }\n }\n\n removeOneTimeVariablesChangedCallback (callback) {\n const index = this.#oneTimeVariablesChangedCallbacks.indexOf(callback)\n if (index !== -1) {\n this.#oneTimeVariablesChangedCallbacks.splice(index, 1)\n }\n }\n\n #runVariablesChangedCallback () {\n for (var callback of this.#variablesChangedCallbacks) {\n callback()\n }\n for (var callBack of this.#oneTimeVariablesChangedCallbacks) {\n callBack()\n }\n this.#oneTimeVariablesChangedCallbacks.length = 0\n }\n}\n\nexport default VariableStore\n","import Account from './modules/account'\nimport CleverTapAPI from './modules/api'\nimport DeviceManager from './modules/device'\nimport EventHandler from './modules/event'\nimport ProfileHandler from './modules/profile'\nimport UserLoginHandler from './modules/userLogin'\nimport _tr from './util/tr'\nimport User from './modules/user'\nimport { Logger, logLevels } from './modules/logger'\nimport SessionManager from './modules/session'\nimport ReqestManager from './modules/request'\nimport {\n CAMP_COOKIE_NAME,\n SCOOKIE_PREFIX,\n NOTIFICATION_VIEWED,\n NOTIFICATION_CLICKED,\n EVT_PING,\n FIRST_PING_FREQ_IN_MILLIS,\n CONTINUOUS_PING_FREQ_IN_MILLIS,\n GROUP_SUBSCRIPTION_REQUEST_ID,\n WZRK_ID,\n WZRK_PREFIX,\n categoryLongKey,\n COMMAND_INCREMENT,\n COMMAND_DECREMENT,\n COMMAND_SET,\n COMMAND_ADD,\n COMMAND_REMOVE,\n COMMAND_DELETE,\n EVT_PUSH,\n WZRK_FETCH,\n WEBINBOX_CONFIG,\n TIMER_FOR_NOTIF_BADGE_UPDATE,\n ACCOUNT_ID\n} from './util/constants'\nimport { EMBED_ERROR } from './util/messages'\nimport { StorageManager, $ct } from './util/storage'\nimport { addToURL, getDomain, getURLParams } from './util/url'\nimport { getCampaignObjForLc, setEnum, handleEmailSubscription, closeIframe } from './util/clevertap'\nimport { compressData } from './util/encoder'\nimport Privacy from './modules/privacy'\nimport NotificationHandler from './modules/notification'\nimport { hasWebInboxSettingsInLS, checkAndRegisterWebInboxElements, initializeWebInbox, getInboxMessages, saveInboxMessages } from './modules/web-inbox/helper'\nimport { Variable } from './modules/variables/variable'\nimport VariableStore from './modules/variables/variableStore'\nimport { addAntiFlicker, handleActionMode } from './modules/visualBuilder/pageBuilder'\nimport { setServerKey } from './modules/webPushPrompt/prompt'\nimport encryption from './modules/security/Encryption'\nimport { checkCustomHtmlNativeDisplayPreview } from './util/campaignRender/nativeDisplay'\n\nexport default class CleverTap {\n #logger\n #api\n #onloadcalled\n #device\n #session\n #account\n #request\n #variableStore\n #isSpa\n #previousUrl\n #boundCheckPageChanged = this.#checkPageChanged.bind(this)\n #dismissSpamControl\n enablePersonalization\n #pageChangeTimeoutId\n\n get spa () {\n return this.#isSpa\n }\n\n set spa (value) {\n const isSpa = value === true\n if (this.#isSpa !== isSpa && this.#onloadcalled === 1) {\n // if clevertap.spa is changed after init has been called then update the click listeners\n if (isSpa) {\n document.addEventListener('click', this.#boundCheckPageChanged)\n } else {\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n }\n this.#isSpa = isSpa\n }\n\n get dismissSpamControl () {\n return this.#dismissSpamControl\n }\n\n set dismissSpamControl (value) {\n const dismissSpamControl = value === true\n this.#dismissSpamControl = dismissSpamControl\n $ct.dismissSpamControl = dismissSpamControl\n }\n\n constructor (clevertap = {}) {\n this.#onloadcalled = 0\n this._isPersonalisationActive = this._isPersonalisationActive.bind(this)\n this.raiseNotificationClicked = () => { }\n this.#logger = new Logger(logLevels.INFO)\n this.#account = new Account(clevertap.account?.[0], clevertap.region || clevertap.account?.[1], clevertap.targetDomain || clevertap.account?.[2], clevertap.token || clevertap.account?.[3])\n encryption.key = clevertap.account?.[0].id\n this.#device = new DeviceManager({ logger: this.#logger })\n this.#dismissSpamControl = clevertap.dismissSpamControl || false\n this.shpfyProxyPath = clevertap.shpfyProxyPath || ''\n this.#session = new SessionManager({\n logger: this.#logger,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.#request = new ReqestManager({\n logger: this.#logger,\n account: this.#account,\n device: this.#device,\n session: this.#session,\n isPersonalisationActive: this._isPersonalisationActive\n })\n this.enablePersonalization = clevertap.enablePersonalization || false\n this.event = new EventHandler({\n logger: this.#logger,\n request: this.#request,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.event)\n\n this.profile = new ProfileHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n isPersonalisationActive: this._isPersonalisationActive\n }, clevertap.profile)\n\n this.onUserLogin = new UserLoginHandler({\n request: this.#request,\n account: this.#account,\n session: this.#session,\n logger: this.#logger,\n device: this.#device\n }, clevertap.onUserLogin)\n\n this.privacy = new Privacy({\n request: this.#request,\n account: this.#account,\n logger: this.#logger\n }, clevertap.privacy)\n\n this.notifications = new NotificationHandler({\n logger: this.#logger,\n request: this.#request,\n account: this.#account\n }, clevertap.notifications)\n\n this.#variableStore = new VariableStore({\n logger: this.#logger,\n request: this.#request,\n account: this.#account,\n event: this.event\n })\n\n this.#api = new CleverTapAPI({\n logger: this.#logger,\n request: this.#request,\n device: this.#device,\n session: this.#session\n })\n\n this.spa = clevertap.spa\n this.dismissSpamControl = clevertap.dismissSpamControl\n\n this.user = new User({\n isPersonalisationActive: this._isPersonalisationActive\n })\n\n encryption.logger = this.#logger\n\n this.session = {\n getTimeElapsed: () => {\n return this.#session.getTimeElapsed()\n },\n getPageCount: () => {\n return this.#session.getPageCount()\n }\n }\n\n this.logout = () => {\n this.#logger.debug('logout called')\n StorageManager.setInstantDeleteFlagInK()\n }\n\n this.clear = () => {\n this.onUserLogin.clear()\n }\n\n this.getCleverTapID = () => {\n return this.#device.getGuid()\n }\n\n this.getAccountID = () => {\n return this.#account.id\n }\n\n this.getSCDomain = () => {\n return this.#account.finalTargetDomain\n }\n\n this.setLibrary = (libName, libVersion) => {\n $ct.flutterVersion = { [libName]: libVersion }\n }\n\n // Set the Signed Call sdk version and fire request\n this.setSCSDKVersion = (ver) => {\n this.#account.scSDKVersion = ver\n const data = {}\n data.af = { scv: 'sc-sdk-v' + this.#account.scSDKVersion }\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n if (hasWebInboxSettingsInLS()) {\n checkAndRegisterWebInboxElements()\n initializeWebInbox(this.#logger)\n }\n\n // Get Inbox Message Count\n this.getInboxMessageCount = () => {\n const msgCount = getInboxMessages()\n return Object.keys(msgCount).length\n }\n\n // Get Inbox Unread Message Count\n this.getInboxMessageUnreadCount = () => {\n try {\n const unreadMessages = this.getUnreadInboxMessages()\n const result = Object.keys(unreadMessages).length\n return result\n } catch (e) {\n this.#logger.error('Error in getInboxMessageUnreadCount' + e)\n }\n }\n\n // Get All Inbox messages\n this.getAllInboxMessages = () => {\n return getInboxMessages()\n }\n\n // Get only Unread messages\n this.getUnreadInboxMessages = () => {\n try {\n const messages = getInboxMessages()\n const result = {}\n\n if (Object.keys(messages).length > 0) {\n for (const message in messages) {\n if (messages[message].viewed === 0) {\n result[message] = messages[message]\n }\n }\n }\n return result\n } catch (e) {\n this.#logger.error('Error in getUnreadInboxMessages' + e)\n }\n }\n\n // Get message object belonging to the given message id only. Message id should be a String\n this.getInboxMessageForId = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n return messages[messageId]\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n // Delete message from the Inbox. Message id should be a String\n // If the message to be deleted is unviewed then decrement the badge count, delete the message from unviewedMessages list\n // Then remove the message from local storage and update cookie\n this.deleteInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 0) {\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = $ct.inbox.unviewedCounter\n unViewedBadge.style.display = $ct.inbox.unviewedCounter > 0 ? 'flex' : 'none'\n }\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n el && el.remove()\n }\n delete messages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. Message id should be a String\n - Check if the message Id exist in the unread message list\n - Remove the unread marker, update the viewed flag, decrement the bage Count\n - renderNotificationViewed */\n this.markReadInboxMessage = (messageId) => {\n const messages = getInboxMessages()\n if ((messageId !== null || messageId !== '') && messages.hasOwnProperty(messageId)) {\n if (messages[messageId].viewed === 1) {\n return this.#logger.error('Message already viewed' + messageId)\n }\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(messageId)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[messageId].viewed = 1\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n var counter = parseInt(unViewedBadge.innerText) - 1\n unViewedBadge.innerText = counter\n unViewedBadge.style.display = counter > 0 ? 'flex' : 'none'\n }\n window.clevertap.renderNotificationViewed({ msgId: messages[messageId].wzrk_id, pivotId: messages[messageId].pivotId })\n $ct.inbox.unviewedCounter--\n delete $ct.inbox.unviewedMessages[messageId]\n saveInboxMessages(messages)\n } else {\n this.#logger.error('No message available for message Id ' + messageId)\n }\n }\n\n /* Mark Message as Read. messageIds should be a an array of string */\n this.markReadInboxMessagesForIds = (messageIds) => {\n if (Array.isArray(messageIds)) {\n for (var id = 0; id < messageIds.length; id++) {\n this.markReadInboxMessage(messageIds[id])\n }\n }\n }\n\n /* Mark all messages as read\n - Get the count of unread messages, update unread marker style\n - renderNotificationViewed, update the badge count and style\n */\n this.markReadAllInboxMessage = () => {\n const messages = getInboxMessages()\n const unreadMsg = this.getUnreadInboxMessages()\n if (Object.keys(unreadMsg).length > 0) {\n const msgIds = Object.keys(unreadMsg)\n msgIds.forEach(key => {\n const ctInbox = document.querySelector('ct-web-inbox')\n if (ctInbox) {\n const el = ctInbox.shadowRoot.getElementById(key)\n if (el !== null) {\n el.shadowRoot.getElementById('unreadMarker').style.display = 'none'\n }\n }\n messages[key].viewed = 1\n window.clevertap.renderNotificationViewed({ msgId: messages[key].wzrk_id, pivotId: messages[key].wzrk_pivot })\n })\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (unViewedBadge) {\n unViewedBadge.innerText = 0\n unViewedBadge.style.display = 'none'\n }\n saveInboxMessages(messages)\n $ct.inbox.unviewedCounter = 0\n $ct.inbox.unviewedMessages = {}\n } else {\n this.#logger.debug('All messages are already read')\n }\n }\n\n this.toggleInbox = (e) => $ct.inbox?.toggleInbox(e)\n\n // method for notification viewed\n this.renderNotificationViewed = (detail) => {\n processNotificationEvent(NOTIFICATION_VIEWED, detail)\n }\n\n // method for notification clicked\n this.renderNotificationClicked = (detail) => {\n processNotificationEvent(NOTIFICATION_CLICKED, detail)\n }\n\n const processNotificationEvent = (eventName, eventDetail) => {\n if (!eventDetail || !eventDetail.msgId) { return }\n const data = {}\n data.type = 'event'\n data.evtName = eventName\n data.evtData = { [WZRK_ID]: eventDetail.msgId }\n\n if (eventDetail.pivotId) {\n data.evtData = { ...data.evtData, wzrk_pivot: eventDetail.pivotId }\n }\n\n if (eventDetail.wzrk_slideNo) {\n data.evtData = { ...data.evtData, wzrk_slideNo: eventDetail.wzrk_slideNo }\n }\n\n // Adding kv pair to event data\n if (eventDetail.kv && eventDetail.kv !== null && eventDetail.kv !== undefined) {\n for (const key in eventDetail.kv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.kv[key] }\n }\n }\n }\n\n // Adding msgCTkv to event data\n if (eventDetail.msgCTkv && eventDetail.msgCTkv !== null && eventDetail.msgCTkv !== undefined) {\n for (const key in eventDetail.msgCTkv) {\n if (key.startsWith(WZRK_PREFIX)) {\n data.evtData = { ...data.evtData, [key]: eventDetail.msgCTkv[key] }\n }\n }\n }\n this.#request.processEvent(data)\n }\n\n this.setLogLevel = (l) => {\n this.#logger.logLevel = Number(l)\n if (l === 3) {\n sessionStorage.WZRK_D = ''\n } else {\n delete sessionStorage.WZRK_D\n }\n }\n /**\n * @param {} key\n * @param {*} value\n */\n this.handleIncrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_INCREMENT)\n }\n\n this.handleDecrementValue = (key, value) => {\n this.profile._handleIncrementDecrementValue(key, value, COMMAND_DECREMENT)\n }\n\n this.setMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueSet(key, value, COMMAND_SET)\n } else {\n console.error('setMultiValuesForKey should be called with a value of type array')\n }\n }\n\n this.addMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.addMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueAdd(key, value, COMMAND_ADD)\n } else {\n console.error('addMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeMultiValueForKey = (key, value) => {\n if (typeof value === 'string' || typeof value === 'number') {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValueForKey should be called with a value of type string or number.')\n }\n }\n\n this.removeMultiValuesForKey = (key, value) => {\n if (Array.isArray(value)) {\n this.profile._handleMultiValueRemove(key, value, COMMAND_REMOVE)\n } else {\n console.error('removeMultiValuesForKey should be called with a value of type array.')\n }\n }\n\n this.removeValueForKey = (key) => {\n this.profile._handleMultiValueDelete(key, COMMAND_DELETE)\n }\n\n this.enableLocalStorageEncryption = (value) => {\n encryption.enableLocalStorageEncryption = value\n }\n\n this.isLocalStorageEncryptionEnabled = () => {\n return encryption.enableLocalStorageEncryption\n }\n\n const _handleEmailSubscription = (subscription, reEncoded, fetchGroups) => {\n handleEmailSubscription(subscription, reEncoded, fetchGroups, this.#account, this.#logger)\n }\n\n /**\n *\n * @param {number} lat\n * @param {number} lng\n * @param {callback function} handleCoordinates\n * @returns\n */\n this.getLocation = function (lat, lng) {\n // latitude and longitude should be number type\n if ((lat && typeof lat !== 'number') || (lng && typeof lng !== 'number')) {\n console.log('Latitude and Longitude must be of number type')\n return\n }\n if (lat && lng) {\n // valid latitude ranges bw +-90\n if (lat <= -90 || lat > 90) {\n console.log('A vaid latitude must range between -90 and 90')\n return\n }\n // valid longitude ranges bw +-180\n if (lng <= -180 || lng > 180) {\n console.log('A valid longitude must range between -180 and 180')\n return\n }\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n } else {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(showPosition.bind(this), showError)\n } else {\n console.log('Geolocation is not supported by this browser.')\n }\n }\n }\n\n function showPosition (position) {\n var lat = position.coords.latitude\n var lng = position.coords.longitude\n $ct.location = { Latitude: lat, Longitude: lng }\n this.#sendLocationData({ Latitude: lat, Longitude: lng })\n }\n\n function showError (error) {\n switch (error.code) {\n case error.PERMISSION_DENIED:\n console.log('User denied the request for Geolocation.')\n break\n case error.POSITION_UNAVAILABLE:\n console.log('Location information is unavailable.')\n break\n case error.TIMEOUT:\n console.log('The request to get user location timed out.')\n break\n case error.UNKNOWN_ERROR:\n console.log('An unknown error occurred.')\n break\n }\n }\n\n const api = this.#api\n api.logout = this.logout\n api.clear = this.clear\n api.closeIframe = (campaignId, divIdIgnored) => {\n closeIframe(campaignId, divIdIgnored, this.#session.sessionId)\n }\n api.enableWebPush = (enabled, applicationServerKey) => {\n setServerKey(applicationServerKey)\n this.notifications._enableWebPush(enabled, applicationServerKey)\n }\n api.tr = (msg) => {\n _tr(msg, {\n device: this.#device,\n session: this.#session,\n request: this.#request,\n logger: this.#logger\n })\n }\n api.setEnum = (enumVal) => {\n setEnum(enumVal, this.#logger)\n }\n api.is_onloadcalled = () => {\n return (this.#onloadcalled === 1)\n }\n api.subEmail = (reEncoded) => {\n _handleEmailSubscription('1', reEncoded)\n }\n api.getEmail = (reEncoded, withGroups) => {\n _handleEmailSubscription('-1', reEncoded, withGroups)\n }\n api.unSubEmail = (reEncoded) => {\n _handleEmailSubscription('0', reEncoded)\n }\n api.unsubEmailGroups = (reEncoded) => {\n $ct.unsubGroups = []\n const elements = document.getElementsByClassName('ct-unsub-group-input-item')\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i]\n if (element.name) {\n const data = { name: element.name, isUnsubscribed: element.checked }\n $ct.unsubGroups.push(data)\n }\n }\n\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.setSubscriptionGroups = (value) => {\n $ct.unsubGroups = value\n }\n api.getSubscriptionGroups = () => {\n return $ct.unsubGroups\n }\n api.changeSubscriptionGroups = (reEncoded, updatedGroups) => {\n api.setSubscriptionGroups(updatedGroups)\n _handleEmailSubscription(GROUP_SUBSCRIPTION_REQUEST_ID, reEncoded)\n }\n api.isGlobalUnsubscribe = () => {\n return $ct.globalUnsubscribe\n }\n api.setIsGlobalUnsubscribe = (value) => {\n $ct.globalUnsubscribe = value\n }\n api.setUpdatedCategoryLong = (profile) => {\n if (profile[categoryLongKey]) {\n $ct.updatedCategoryLong = profile[categoryLongKey]\n }\n }\n window.$CLTP_WR = window.$WZRK_WR = api\n\n if (clevertap.account?.[0].id) {\n // The accountId is present so can init with empty values.\n // Needed to maintain backward compatability with legacy implementations.\n // Npm imports/require will need to call init explictly with accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, clevertap.account?.[0].id)\n this.init()\n }\n }\n\n // starts here\n init (accountId, region, targetDomain, token, antiFlicker = {}) {\n if (Object.keys(antiFlicker).length > 0) {\n addAntiFlicker(antiFlicker)\n }\n if (this.#onloadcalled === 1) {\n // already initailsed\n return\n }\n\n if (accountId) {\n encryption.key = accountId\n }\n\n StorageManager.removeCookie('WZRK_P', window.location.hostname)\n if (!this.#account.id) {\n if (!accountId) {\n this.#logger.error(EMBED_ERROR)\n return\n }\n this.#account.id = accountId\n StorageManager.saveToLSorCookie(ACCOUNT_ID, accountId)\n this.#logger.debug('CT Initialized with Account ID: ' + this.#account.id)\n }\n handleActionMode(this.#logger, this.#account.id)\n checkCustomHtmlNativeDisplayPreview(this.#logger)\n this.#session.cookieName = SCOOKIE_PREFIX + '_' + this.#account.id\n\n if (region) {\n this.#account.region = region\n }\n if (targetDomain) {\n this.#account.targetDomain = targetDomain\n }\n if (token) {\n this.#account.token = token\n }\n\n const currLocation = location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n\n // eslint-disable-next-line eqeqeq\n if (typeof urlParams.e !== 'undefined' && urlParams.wzrk_ex == '0') {\n return\n }\n\n $ct.isPrivacyArrPushed = true\n if ($ct.privacyArray.length > 0) {\n this.privacy.push($ct.privacyArray)\n }\n\n this.#processOldValues()\n this.pageChanged()\n const backupInterval = setInterval(() => {\n if (this.#device.gcookie) {\n clearInterval(backupInterval)\n this.#request.processBackupEvents()\n }\n }, 3000)\n if (this.#isSpa) {\n // listen to click on the document and check if URL has changed.\n document.addEventListener('click', this.#boundCheckPageChanged)\n\n /* Listen for the Back and Forward buttons */\n window.addEventListener('popstate', this.#boundCheckPageChanged)\n } else {\n // remove existing click listeners if any\n document.removeEventListener('click', this.#boundCheckPageChanged)\n }\n this.#onloadcalled = 1\n }\n\n // process the option array provided to the clevertap object\n // after its been initialized\n #processOldValues () {\n this.onUserLogin._processOldValues()\n this.privacy._processOldValues()\n this.event._processOldValues()\n this.profile._processOldValues()\n this.notifications._processOldValues()\n }\n\n #debounce (func, delay = 50) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(func, delay)\n }\n }\n\n #checkPageChanged () {\n const debouncedPageChanged = this.#debounce(() => {\n if (this.#previousUrl !== location.href) {\n this.pageChanged()\n }\n })\n debouncedPageChanged()\n }\n\n #updateUnviewedBadgePosition () {\n try {\n if (this.#pageChangeTimeoutId) {\n clearTimeout(this.#pageChangeTimeoutId)\n }\n\n const unViewedBadge = document.getElementById('unviewedBadge')\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n /* Reset to None */\n unViewedBadge.style.display = 'none'\n\n /* Set Timeout to let the page load and then update the position and display the badge */\n this.#pageChangeTimeoutId = setTimeout(() => {\n const config = StorageManager.readFromLSorCookie(WEBINBOX_CONFIG) || {}\n const inboxNode = document.getElementById(config?.inboxSelector)\n /* Creating a Local Variable to avoid reference to stale DOM Node */\n const unViewedBadge = document.getElementById('unviewedBadge')\n\n if (!unViewedBadge) {\n this.#logger.debug('unViewedBadge not found')\n return\n }\n\n if (inboxNode) {\n const { top, right } = inboxNode.getBoundingClientRect()\n if (Number(unViewedBadge.innerText) > 0 || unViewedBadge.innerText === '9+') {\n unViewedBadge.style.display = 'flex'\n }\n unViewedBadge.style.top = `${top - 8}px`\n unViewedBadge.style.left = `${right - 8}px`\n }\n }, TIMER_FOR_NOTIF_BADGE_UPDATE)\n } catch (error) {\n this.#logger.debug('Error updating unviewed badge position:', error)\n }\n }\n\n pageChanged () {\n const currLocation = window.location.href\n const urlParams = getURLParams(currLocation.toLowerCase())\n // -- update page count\n const obj = this.#session.getSessionCookieObject()\n let pgCount = (typeof obj.p === 'undefined') ? 0 : obj.p\n obj.p = ++pgCount\n this.#session.setSessionCookieObject(obj)\n // -- update page count\n\n let data = {}\n let referrerDomain = getDomain(document.referrer)\n\n if (window.location.hostname !== referrerDomain) {\n const maxLen = 120\n if (referrerDomain !== '') {\n referrerDomain = referrerDomain.length > maxLen ? referrerDomain.substring(0, maxLen) : referrerDomain\n data.referrer = referrerDomain\n }\n\n let utmSource = urlParams.utm_source || urlParams.wzrk_source\n if (typeof utmSource !== 'undefined') {\n utmSource = utmSource.length > maxLen ? utmSource.substring(0, maxLen) : utmSource\n data.us = utmSource // utm_source\n }\n\n let utmMedium = urlParams.utm_medium || urlParams.wzrk_medium\n if (typeof utmMedium !== 'undefined') {\n utmMedium = utmMedium.length > maxLen ? utmMedium.substring(0, maxLen) : utmMedium\n data.um = utmMedium // utm_medium\n }\n\n let utmCampaign = urlParams.utm_campaign || urlParams.wzrk_campaign\n if (typeof utmCampaign !== 'undefined') {\n utmCampaign = utmCampaign.length > maxLen ? utmCampaign.substring(0, maxLen) : utmCampaign\n data.uc = utmCampaign // utm_campaign\n }\n\n // also independently send wzrk_medium to the backend\n if (typeof urlParams.wzrk_medium !== 'undefined') {\n const wm = urlParams.wzrk_medium\n if (wm.match(/^email$|^social$|^search$/)) {\n data.wm = wm // wzrk_medium\n }\n }\n }\n\n data = this.#request.addSystemDataToObject(data, undefined)\n data.cpg = currLocation\n\n data[CAMP_COOKIE_NAME] = getCampaignObjForLc()\n let pageLoadUrl = this.#account.dataPostURL\n this.#request.addFlags(data)\n // send dsync flag when page = 1\n if (parseInt(data.pg) === 1) {\n this.#overrideDSyncFlag(data)\n }\n pageLoadUrl = addToURL(pageLoadUrl, 'type', 'page')\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n\n if (parseInt(data.pg) === 1) {\n this.event.push(WZRK_FETCH, { t: 4 })\n }\n\n this.#previousUrl = currLocation\n setTimeout(() => {\n if (pgCount <= 3) {\n // send ping for up to 3 pages\n this.#pingRequest()\n }\n\n if (this.#isPingContinuous()) {\n setInterval(() => {\n this.#pingRequest()\n }, CONTINUOUS_PING_FREQ_IN_MILLIS)\n }\n }, FIRST_PING_FREQ_IN_MILLIS)\n\n this.#updateUnviewedBadgePosition()\n }\n\n #pingRequest () {\n let pageLoadUrl = this.#account.dataPostURL\n let data = {}\n data = this.#request.addSystemDataToObject(data, undefined)\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PING)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressData(JSON.stringify(data), this.#logger))\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n #isPingContinuous () {\n return (typeof window.wzrk_d !== 'undefined' && window.wzrk_d.ping === 'continuous')\n }\n\n _isPersonalisationActive () {\n return StorageManager._isLocalStorageSupported() && this.enablePersonalization\n }\n\n #overrideDSyncFlag (data) {\n if (this._isPersonalisationActive()) {\n data.dsync = true\n }\n }\n\n popupCallbacks = {};\n popupCurrentWzrkId = '';\n\n // eslint-disable-next-line accessor-pairs\n set popupCallback (callback) {\n this.popupCallbacks[this.popupCurrentWzrkId] = callback\n }\n\n /**\n *\n * @param {object} payload\n */\n #sendLocationData (payload) {\n // Send the updated value to LC\n let data = {}\n data.af = {}\n const profileObj = {}\n data.type = 'profile'\n if (profileObj.tz == null) {\n profileObj.tz = new Date().toString().match(/([A-Z]+[\\+-][0-9]+)/)[1]\n }\n data.profile = profileObj\n if (payload) {\n const keys = Object.keys(payload)\n keys.forEach(key => {\n data.af[key] = payload[key]\n })\n }\n if ($ct.location) {\n data.af = { ...data.af, ...$ct.location }\n }\n data = this.#request.addSystemDataToObject(data, true)\n this.#request.addFlags(data)\n const compressedData = compressData(JSON.stringify(data), this.#logger)\n let pageLoadUrl = this.#account.dataPostURL\n pageLoadUrl = addToURL(pageLoadUrl, 'type', EVT_PUSH)\n pageLoadUrl = addToURL(pageLoadUrl, 'd', compressedData)\n\n this.#request.saveAndFireRequest(pageLoadUrl, $ct.blockRequest)\n }\n\n // offline mode\n /**\n * events will be recorded and queued locally when passed with true\n * but will not be sent to the server until offline is disabled by passing false\n * @param {boolean} arg\n */\n\n setOffline (arg) {\n if (typeof arg !== 'boolean') {\n console.error('setOffline should be called with a value of type boolean')\n return\n }\n // Check if the offline state is changing from true to false\n // If offline is being disabled (arg is false), process any cached events\n if ($ct.offline !== arg && !arg) {\n this.#request.processBackupEvents()\n }\n $ct.offline = arg\n }\n\n getSDKVersion () {\n return 'web-sdk-v$$PACKAGE_VERSION$$'\n }\n\n defineVariable (name, defaultValue) {\n return Variable.define(name, defaultValue, this.#variableStore)\n }\n\n syncVariables (onSyncSuccess, onSyncFailure) {\n if (this.#logger.logLevel === 4) {\n return this.#variableStore.syncVariables(onSyncSuccess, onSyncFailure)\n } else {\n const m = 'App log level is not set to 4'\n this.#logger.error(m)\n return Promise.reject(new Error(m))\n }\n }\n\n fetchVariables (onFetchCallback) {\n this.#variableStore.fetchVariables(onFetchCallback)\n }\n\n addVariablesChangedCallback (callback) {\n this.#variableStore.addVariablesChangedCallback(callback)\n }\n\n addOneTimeVariablesChangedCallback (callback) {\n this.#variableStore.addOneTimeVariablesChangedCallback(callback)\n }\n}\n","import Clevertap from './clevertap'\n\nconst clevertap = new Clevertap(window.clevertap)\n\nwindow.clevertap = window.wizrocket = clevertap\n\nexport default clevertap\n"],"names":["TARGET_DOMAIN","TARGET_PROTOCOL","DEFAULT_REGION","Account","constructor","id","region","targetDomain","token","accountId","dcSDKVersion","finalTargetDomain","dataPostPEURL","dataPostURL","recorderURL","emailURL","unsupportedKeyCharRegex","RegExp","unsupportedValueCharRegex","singleQuoteRegex","CLEAR","CHARGED_ID","CHARGEDID_COOKIE_NAME","GCOOKIE_NAME","KCOOKIE_NAME","CAMP_COOKIE_NAME","CAMP_COOKIE_G","SCOOKIE_PREFIX","SCOOKIE_EXP_TIME_IN_SECS","EV_COOKIE","META_COOKIE","PR_COOKIE","ACCOUNT_ID","ARP_COOKIE","LCOOKIE_NAME","GLOBAL","DISPLAY","WEBPUSH_LS_KEY","OPTOUT_KEY","CT_OPTOUT_KEY","OPTOUT_COOKIE_ENDSWITH","USEIP_KEY","LRU_CACHE","LRU_CACHE_SIZE","IS_OUL","EVT_PUSH","EVT_PING","COOKIE_EXPIRY","MAX_TRIES","FIRST_PING_FREQ_IN_MILLIS","CONTINUOUS_PING_FREQ_IN_MILLIS","GROUP_SUBSCRIPTION_REQUEST_ID","categoryLongKey","WZRK_PREFIX","WZRK_ID","NOTIFICATION_VIEWED","NOTIFICATION_CLICKED","FIRE_PUSH_UNREGISTERED","PUSH_SUBSCRIPTION_DATA","COMMAND_INCREMENT","COMMAND_DECREMENT","COMMAND_SET","COMMAND_ADD","COMMAND_REMOVE","COMMAND_DELETE","WEBINBOX_CONFIG","WEBINBOX","MAX_INBOX_MSG","VARIABLES","PUSH_DELAY_MS","MAX_DELAY_FREQUENCY","WZRK_FETCH","WEBPUSH_CONFIG","VAPID_MIGRATION_PROMPT_SHOWN","NOTIF_LAST_TIME","TIMER_FOR_NOTIF_BADGE_UPDATE","OLD_SOFT_PROMPT_SELCTOR_ID","NEW_SOFT_PROMPT_SELCTOR_ID","POPUP_LOADING","CUSTOM_HTML_PREVIEW","SYSTEM_EVENTS","KEYS_TO_ENCRYPT","isString","input","String","isObject","Object","prototype","toString","call","isDateObject","Date","isObjectEmpty","obj","prop","hasOwnProperty","isConvertibleToNumber","n","isNaN","parseFloat","isFinite","isNumber","test","isValueValid","value","undefined","removeUnsupportedChars","o","logger","key","sanitizedVal","sanitizedKey","sanitize","length","substring","reportError","val","regex","replace","getToday","today","getFullYear","getMonth","getDay","getNow","Math","floor","getTime","convertToWZRKDate","dateObj","round","setDate","dt","isDateValid","date","matches","exec","d","m","y","composedDate","getDate","root","factory","module","exports","this","CryptoJS","crypto","window","self","globalThis","msCrypto","global","require","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","Error","create","F","subtype","C","C_lib","lib","Base","extend","overrides","mixIn","init","$super","apply","arguments","instance","properties","propertyName","clone","WordArray","words","sigBytes","encoder","Hex","stringify","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","i","thatByte","j","ceil","slice","random","nBytes","push","C_enc","enc","hexChars","bite","join","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","max","_minBufferSize","nWordsReady","nBytesReady","min","offset","_doProcessBlock","splice","Hasher","cfg","_doReset","update","messageUpdate","finalize","hash","_doFinalize","_createHelper","hasher","message","_createHmacHelper","C_algo","HMAC","algo","require$$0","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","ArrayBuffer","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","swapEndian","word","Base64","map","_map","base64Chars","byte1","byte2","byte3","triplet","charAt","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","indexOf","parseLoop","bits1","bits2","bitsCombined","Base64url","urlSafe","_safe_map","T","abs","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","a","b","c","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","x","s","t","HmacMD5","W","SHA1","HmacSHA1","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","pow","SHA256","f","g","h","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","t1","t2","HmacSHA256","undef","require$$1","SHA224","HmacSHA224","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1l","t1h","t2l","t2h","HmacSHA512","require$$2","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","state","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sl","sr","ar","br","cr","dr","er","f1","f2","f3","f4","f5","rotl","z","HmacRIPEMD160","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","PBKDF2","keySize","iterations","compute","password","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","block","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","finalProcessedData","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","StreamCipher","finalProcessedBlocks","C_mode","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","processBlock","xorBlock","encryptBlock","_prevBlock","thisBlock","decryptBlock","C_pad","pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","BlockCipher","modeCreator","_mode","__creator","CipherParams","cipherParams","formatter","C_format","format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","execute","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","counter","_counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","require$$3","require$$4","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x2","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s0","s1","s2","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","_des1","_des2","_des3","RC4","keySigBytes","S","_S","keyByteIndex","keyByte","_i","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","C_","G","Rabbit","X","_X","_C","_b","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","RabbitLegacy","N","ORIG_P","ORIG_S","BLOWFISH_CTX","pbox","sbox","ctx","BlowFish_Encrypt","left","right","Xl","Xr","temp","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","keyIndex","index","Data1","Data2","res","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","Encryption","_logger","classInstance","enableLocalStorageEncryption","shouldEncrypt","includes","shouldDecrypt","decryptedData","encryption","StorageManager","save","_isLocalStorageSupported","localStorage","setItem","JSON","read","getItem","remove","removeItem","removeCookie","name","domain","cookieStr","document","cookie","createCookie","seconds","expires","domainStr","setTime","toGMTString","readCookie","nameEQ","ca","split","idx","saveToLSorCookie","property","location","hostname","$ct","globalCache","readFromLSorCookie","trim","createBroadCookie","broadDomain","domainParts","testBroadDomain","testCookieName","tempCookie","getMetaProp","metaObj","setMetaProp","wzrkMetaObj","getAndClearMetaProp","setInstantDeleteFlagInK","k","flag","backupEvent","reqNo","backupArr","q","debug","removeBackup","respNo","backupMap","gcookie","REQ_N","RESP_N","globalProfileMap","globalEventsMap","blockRequest","isOptInRequest","webPushEnabled","campaignDivMap","currentSessionId","wiz_counter","notifApi","notifEnabledFromApi","unsubGroups","updatedCategoryLong","inbox","isPrivacyArrPushed","privacyArray","offline","dismissSpamControl","globalUnsubscribe","flutterVersion","variableStore","pushConfig","LRUCache","lruCache","tempLruCache","cache","entry","get","item","saveCacheToLS","set","allKeys","objToArray","getKey","getSecondLastKey","keysArr","getLastKey","keysLength","newCache","indexToDelete","CleverTapAPI","request","device","session","_request","_device","_session","resume","respNumber","optOutResponse","oulReq","newGuid","isOULInProgress","oulReqN","sessionObj","getSessionCookieObject","kIdFromLS","guidFromLRUCache","lastK","lastGUID","unregisterTokenForGuid","manageSession","setSessionCookieObject","processingBackup","processBackupEvents","DeviceManager","getGuid","guid","error","DATA_NOT_SENT_TEXT","CLEVERTAP_ERROR_PREFIX","EMBED_ERROR","EVENT_ERROR","GENDER_ERROR","EMPLOYED_ERROR","MARRIED_ERROR","EDUCATION_ERROR","AGE_ERROR","DOB_ERROR","ENUM_FORMAT_ERROR","PHONE_FORMAT_ERROR","_globalChargedId","isEventStructureFlat","eventObj","Array","isArray","isChargedEventStructureValid","chargedObj","itemKey","chargedId","EventHandler","values","isPersonalisationActive","_oldValues","_isPersonalisationActive","eventsArr","_processOldValues","getDetails","evtName","evtObj","respObj","firstTime","lastTime","count","eventName","shift","type","unshift","evtData","processEvent","getURLParams","url","urlParams","uri","match","pl","search","decode","replacement","getDomain","createElement","href","addToURL","v","getHostName","urlBase64ToUint8Array","base64String","repeat","base64","rawData","atob","processedData","compressData","dataObject","compressToBase64","compress","uncompressed","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_string","context_data_val","context_data_position","ii","getKeyStr","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","NaN","RequestDispatcher","networkRetryCount","minDelayFrequency","fireRequest","skipARP","sendOULFlag","getDelayFrequency","account","randomDelay","skipResARP","_arp","pageLoadUrl","useIP","tries","setTimeout","clevertap","wizrocket","plugin","ctCbScripts","getElementsByClassName","parentNode","removeChild","setAttribute","async","getElementsByTagName","appendChild","getCampaignObject","finalcampObj","campObj","wp","saveCampaignObject","campaignObj","newObj","setCampaignObjectForGuid","guidCampObj","finalCampObj","keys","forEach","campKeyObj","globalObj","dailyObj","campaignIdArray","resultObj","dailyC","totalC","campaignId","console","getCampaignObjForLc","storageValue","decodedValue","parsedValue","resultObjWP","resultObjWI","wi","todayCwp","todayCwi","tc","wmp","wimp","tlc","witlc","isProfileValid","profileObj","valid","profileKey","profileVal","Age","Phone","processFBUserObj","user","profileData","Name","FBID","gender","Gender","getHighestEducation","eduArr","college","highschool","edu","relationship_status","Married","education","Education","work","Employed","email","Email","birthday","mmddyy","DOB","processGPlusUserObj","displayName","GPID","image","isDefault","Photo","emails","emailIdx","emailObj","organizations","orgObj","yyyymmdd","relationshipStatus","addToLocalProfileMap","override","_custom","closeIframe","divIdIgnored","sessionCampaignObj","divId","getElementById","arp","jsonMap","isOULARP","arpFromStorage","setEnum","enumVal","handleEmailSubscription","subscription","reEncoded","fetchGroups","urlParamsAsIs","encodedEmailId","encodedProfileProps","p","pageType","page_type","ProfileHandler","_account","profilesArr","getAttribute","propName","_handleIncrementDecrementValue","command","tz","profile","addSystemDataToObject","addFlags","compressedData","saveAndFireRequest","_handleMultiValueSet","arrayVal","array","toLowerCase","sendMultiValueData","_handleMultiValueAdd","propKey","propVal","existingValue","addValue","normalizedValue","_handleMultiValueRemove","removeValue","_handleMultiValueDelete","profileArr","outerObj","Site","Facebook","FbProfileObj","GPlusProfileObj","UserLoginHandler","clear","addToK","ids","kId","anonymousUser","foundInCache","gFromCache","Identity","cookieName","loginArr","pop","processProfile","CTWebPopupImageOnly","HTMLElement","_target","shadow","popup","container","resizeObserver","attachShadow","target","renderImageOnlyPopup","msgId","wzrk_id","pivotId","wzrk_pivot","onClickUrl","display","sessionId","innerHTML","getImageOnlyPopupContent","shadowRoot","closeIcon","addEventListener","updateImageAndContainerWidth","ResizeObserver","handleResize","observe","unobserve","style","renderNotificationViewed","open","parent","renderNotificationClicked","width","getRenderedImageWidth","setProperty","msgContent","css","html","visibility","img","ratio","naturalWidth","naturalHeight","height","Message","config","wrapper","snackBar","renderMessage","createEl","part","_el","msg","templateType","prepareBasicMessage","timeStamp","determineTimeStampText","viewed","unreadMarker","imageUrl","imageContainer","addImage","iconTitleDescWrapper","iconUrl","iconContainer","titleDescWrapper","title","innerText","description","buttons","buttonsContainer","addButtons","hasCopyAction","button","text","cssText","action","addSnackbar","greenTickSvg","clipboardMsg","raiseClickedEvent","path","isPreview","raiseClickedForBasicTemplates","payload","tagName","kv","wzrk_c2a","openUrlInNewTab","focus","navigator","clipboard","writeText","clipboardText","log","messageStyles","backgroundColor","borderColor","titleColor","descriptionColor","buttonColor","buttonTextColor","unreadMarkerColor","inboxContainerStyles","panelBackgroundColor","panelBorderColor","headerBackgroundColor","headerTitleColor","closeIconColor","categoriesTabColor","categoriesTitleColor","categoriesBorderColor","selectedCategoryTabColor","selectedCategoryTitleColor","selectedCategoryBorderColor","headerCategoryHeight","Inbox","isInboxOpen","isInboxFromFlutter","selectedCategory","unviewedMessages","unviewedCounter","inboxConfigForPreview","inboxSelector","emptyInboxMsg","inboxCard","unviewedBadge","observer","selectedCategoryRef","addClickListenerOnDocument","composedPath","toggleInbox","startsWith","prevCategoryRef","updateActiveCategory","_path","filter","messageEl","checkForWebInbox","setBadgeStyle","msgCount","shouldShowUnviewedBadge","incomingMessages","msgs","updateInboxMessages","incomingMessagesForPreview","previewMsgs","now","buildUIForMessages","updateUnviewedBadgeCounter","connectedCallback","styles","notificationsBadge","addUnviewedBadge","createinbox","removeEventListener","categories","getInboxStyles","addMsgsToInboxFromLS","messages","deleteExpiredAndGetUnexpiredMsgs","msgIds","deleteMsgsFromUI","getInboxMessages","wzrk_ttl","sort","reduce","acc","saveInboxMessages","inboxMsgs","incomingMsgs","textColor","body","updateUnviewedBadgePosition","inboxNode","top","getBoundingClientRect","header","headerTitle","createCategories","options","rootMargin","threshold","IntersectionObserver","entries","handleMessageViewed","categoriesContainer","leftArrow","arrowSvg","children","scrollBy","categoriesWrapper","_categories","category","rightArrow","firstCategory","lastCategory","firstCategoryObserver","categoryObserverCb","intersectionRatio","lastCategoryObserver","hide","activeCategory","scrollTop","childNodes","updateTSForRenderedMsgs","maxMsgsInInbox","firstChild","sortedMsgs","tags","insertBefore","msgTotalCount","querySelectorAll","ctInboxMsgs","hasMessages","inboxElement","contains","raiseViewedEvent","isIntersecting","updateMessageInLS","rect","zIndex","scrollLeft","scrollWidth","setInboxPosition","windowWidth","outerWidth","customInboxStyles","getComputedStyle","getPropertyValue","bottom","hasPositionDefined","getInboxPosition","clientHeight","clientWidth","xPos","yPos","ts","headerHeight","categoriesHeight","tabColor","selectedTab","inboxStyles","cardStyles","cards","msgStyles","processWebInboxSettings","webInboxSetting","_settings","processInboxNotifs","inbox_preview","inbox_notifs","addWebInbox","checkAndRegisterWebInboxElements","getAndMigrateInboxMessages","gudInboxObj","storedInboxObj","initializeWebInbox","Promise","resolve","reject","retryUntil","condition","interval","maxRetries","attempts","retry","setInterval","clearInterval","addInboxSafely","checkElementCondition","onFailure","retryStarted","startRetry","then","catch","setupEventListeners","readyState","customElements","define","inboxHeight","inboxWidth","horizontalScroll","scrollingElement","verticalScroll","innerWidth","windowHeight","innerHeight","selectorRect","selectorX","selectorY","selectorLeft","selectorRight","selectorTop","selectorBottom","selectorHeight","selectorWidth","selectorCenter","halfOfInboxHeight","halfOfInboxWidth","inboxOnSide","availableHeight","inboxRight","availableWidth","inboxLeft","diff","hasWebInboxSettingsInLS","OVERLAY_PATH","CSS_PATH","WVE_CLASS","FLICKER_SHOW","FLICKER_HIDE","FLICKER_ID","WVE_QUERY_PARAMS","BUILDER","PREVIEW","SDK_CHECK","updateFormData","element","formStyle","underline","curTextDecoration","textDecoration","clickDetails","clickUrl","onclick","newTab","raiseNotificationClicked","imgURL","src","updateElementCSS","elementCSS","head","handleActionMode","searchParams","URLSearchParams","ctType","parentWindow","opener","handleMessageEvent","postMessage","originUrl","sdkVersion","event","isValidUrl","msgOrigin","URL","origin","evtMaster","personalisation","initialiseCTBuilder","variant","details","renderVisualBuilder","onContentLoad","contentLoaded","isShopify","Shopify","documentElement","position","overlayPath","loadOverlayScript","loadCSS","link","rel","script","onload","Overlay","onerror","targetingMsgJson","insertedElements","currentUrl","delete","notificationViewed","raiseViewed","raiseClicked","processElement","selector","isTrackingClicks","clickedPayload","msgCTkv","wzrk_selector","editor","outerHTML","dispatchJsonData","form","tryFindingElement","intervalId","retryElement","querySelector","_","selectorData","initialHtml","addNewEl","pos","sibling","findSiblingSelector","siblingEl","ctEl","tempDiv","newElement","firstElementChild","insertAdjacentElement","insertedElement","sortedArr","numA","numB","inaObj","json","kvPairsEvent","CustomEvent","detail","dispatchEvent","string","Boolean","_err","addAntiFlicker","antiFlicker","personalizedSelectors","delayTime","retryElements","retryCount","retryInterval","isInViewport","styleContent","styleId","styleElement","textContent","applyAntiFlicker","selectors","processSelectors","selectorElements","elements","matchedElements","applyStyles","retryProcessing","classList","add","observeUrlChange","previousHref","MutationObserver","childList","subtree","CTWebPersonalisationBanner","_details","renderBanner","getBannerContent","trackClick","onClick","divHeight","desktopImageURL","mobileImageURL","CTWebPersonalisationCarousel","_carousel","slides","previouslySelectedItem","selectedItem","autoSlide","stopAutoSlideTimeout","renderCarousel","getStyles","carousel","getCarouselContent","showNavBtns","insertAdjacentHTML","navBtnsHtml","showNavArrows","leftNavArrowHtml","rightNavArrowHtml","setupClick","updateSelectedItem","startAutoSlide","setupOnHover","eventID","selected","endsWith","goToNext","goToPrev","wzrk_slideNo","clearTimeout","banner","navBtnsCss","navArrowsCss","prevItem","prevButton","sliderTime","goTo","prev","cur","renderPersonalisationBanner","divSelector","bannerEl","containerEl","renderPersonalisationCarousel","handleKVpairCampaign","renderCustomHtml","wzrkId","wzrkPivot","handleJson","jsonEvent","handleCustomHtmlPreviewPostMessageEvent","eventData","inAppNotifs","inapp_notifs","checkCustomHtmlNativeDisplayPreview","eventHandler","invokeExternalJs","jsFunc","func","appendScriptForCustomEvent","staleDataUpdate","staledata","campType","mergeEventMap","newEvtMap","oldEvtObj","newEvtObj","incrementImpression","setupClickEvent","contentDiv","isLegacy","ctaElement","jsCTAElements","preview","getCookieParams","rValue","notifications","skipDialog","scookieObj","renderPopUpImageOnly","popupImageOnly","getBoxPromptStyles","totalBorderWidth","card","borderEnabled","border","borderWidth","cardPadding","cardContentWidth","overlay","color","borderRadius","primaryButton","secondaryButton","getBellIconStyles","isChrome","ua","userAgent","isFirefox","isSafari","NotificationHandler","displayArgs","enable","swPath","enablePush","setUpWebPushNotifications","subscriptionCallback","serviceWorkerPath","apnsWebPushId","apnsServiceUrl","setApplicationServerKey","applicationServerKey","_enableWebPush","enabled","serviceWorker","register","registration","Notification","requestPermission","permission","subscribeObj","userVisibleOnly","info","subscribeForPush","pushManager","subscribe","endpoint","subscriptionData","registerToken","existingBellWrapper","installing","waiting","active","safari","pushNotification","deviceToken","browser","registrationScope","__wzrk_account_id","scope","rootDirRegex","isServiceWorkerAtRoot","ready","getRegistrations","serviceWorkerRegistration","getSubscription","unsubscribe","successful","scriptTag","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","okCallback","rejectCallback","httpsPopupPath","httpsIframePath","apnsWebPushServiceUrl","vapidSupportedAndMigrated","notifObj","isHTTP","protocol","hasNotification","notifLastTime","httpsIframe","from","wzrkPermissionPopup","wizAlert","confirmButtonText","confirmButtonColor","BELL_BASE64","PROMPT_BELL_BASE64","appServerKey","notificationHandler","processWebPushConfig","webPushConfig","_pushConfig","updatePushConfig","customSwPath","fcmPublicKey","showBox","boxType","showBellIcon","boxConfig","createNotificationBox","bellIconConfig","createBellIcon","createElementWithAttributes","tag","attributes","configData","content","overlayDiv","pnCard","icon","primaryButtonText","secondaryButtonText","setElementPosition","lastNotifTime","popupFrequency","shouldShowNotification","addEventListeners","vapidSupportedAndNotMigrated","bellWrapper","bellIcon","gifModal","gifImage","closeModal","hoverText","tooltip","addBellEventListeners","setServerKey","serverKey","removeWrapper","toggleGifModal","displayTooltip","clearTooltip","assign","inset","transform","positions","Center","Top","Bottom","bellRect","midX","midY","_tr","_wizCounter","doCampHouseKeeping","incrCount","excludeFromFreqCaps","currentCount","totalCount","sessionStorage","campTypeObj","wtarget_type","wmc","wimc","campaignSessionLimit","campaignDailyLimit","campaignTotalLimit","totalDailyLimit","totalSessionLimit","totalInboxSessionLimit","efc","mdc","tdc","campaignSessionCount","totalSessionCount","campaignDailyCount","totalDailyCount","campaignTotalCount","displayObj","delay","campKey","newCampObj","setupClickUrl","handleImageOnlyPopup","msgDiv","isExistingCampaign","testIframe","iframeDocument","contentDocument","contentWindow","createTemplate","isExitIntent","layout","showExitIntent","opacityDivId","opacityElement","isBanner","opacityDiv","opacity","rgbaColor","viewHeight","viewWidth","legacy","marginBottom","contentHeight","bottomPosition","widthPerct","proto","iFrameStyle","iframe","frameborder","marginheight","marginwidth","scrolling","pointerCss","sandbox","bgColor","btnBg","leftTd","btColor","theme","descriptionText","imageTd","onClickStr","closeCampaign","Event","srcdoc","adjustIFrameHeight","scrollHeight","margin","inDoc","_timer","renderFooterNotification","_callBackCalled","showFooterNotification","notificationCallback","raiseNotificationViewed","popupCurrentWzrkId","deliveryTrigger","inactive","triggerByInactivity","scroll","triggerByScroll","exitintentObj","onmouseleave","deliveryDelayed","popupCallbacks","popupCallback","wzrkPrefixKey","wzrkJson","raisePopupNotificationClicked","notificationData","wzrkPrefixObj","targetNotif","IDLE_TIME_THRESHOLD","idleTimer","events","resetIdleTimer","removeEventListeners","eventType","passive","calculateScrollPercentage","scrollListener","scrollPercentage","throttledScrollListener","throttle","limit","inThrottle","context","args","targetObj","clientY","intentPreview","intentOpacityDiv","ctaText","processNativeDisplayArr","arrInAppNotifs","elementId","addLoadListener","handleInboxNotifications","msgArr","vars","mergeVariables","evpr","eventsMap","profileMap","syncExpiry","expires_in","inapp_stale","inbox_stale","User","getTotalVisits","visitCount","getLastVisit","prevSession","logLevels","DISABLE","ERROR","INFO","DEBUG","DEBUG_PE","Logger","logLevel","wzrkError","debugPE","code","level","WZRK_D","SessionManager","scookieStr","objStr","currentSessionInLS","sessionCount","getTimeElapsed","sessionStart","getPageCount","seqNo","requestTime","RequestManager","fired","ignoreTrim","wzrk_error","pg","af","rc","lastSyncTime","expirySeconds","dsync","givenGUID","post","fetch","method","headers","response","ok","nowTs","evtDetail","Privacy","privacyArr","privacyObj","curr","optOut","shouldUseIP","Variable","_variableStore","defaultValue","hadStarted","valueChangedCallbacks","getValue","getdefaultValue","typeOfDefaultValue","existing","getVariable","varInstance","registerVariable","newValue","oldValue","hasVarsRequestCompleted","triggerValueChanged","onValueChanged","addValueChangedCallback","removeValueChangedCallback","clearStartFlag","VariableStore","syncVariables","onSyncSuccess","onSyncFailure","meta","tk","r","status","fetchVariables","onFetchCallback","addVariablesChangedCallback","callback","addOneTimeVariablesChangedCallback","removeVariablesChangedCallback","removeOneTimeVariablesChangedCallback","callBack","CleverTap","spa","isSpa","bind","enablePersonalization","shpfyProxyPath","ReqestManager","onUserLogin","privacy","logout","getCleverTapID","getAccountID","getSCDomain","setLibrary","libName","libVersion","setSCSDKVersion","ver","scSDKVersion","scv","getInboxMessageCount","getInboxMessageUnreadCount","unreadMessages","getUnreadInboxMessages","result","getAllInboxMessages","getInboxMessageForId","messageId","deleteInboxMessage","unViewedBadge","ctInbox","markReadInboxMessage","markReadInboxMessagesForIds","messageIds","markReadAllInboxMessage","unreadMsg","processNotificationEvent","eventDetail","setLogLevel","l","Number","handleIncrementValue","handleDecrementValue","setMultiValuesForKey","addMultiValueForKey","addMultiValuesForKey","removeMultiValueForKey","removeMultiValuesForKey","removeValueForKey","isLocalStorageEncryptionEnabled","_handleEmailSubscription","getLocation","lat","lng","Latitude","Longitude","geolocation","getCurrentPosition","showPosition","showError","coords","latitude","longitude","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","api","enableWebPush","tr","is_onloadcalled","subEmail","getEmail","withGroups","unSubEmail","unsubEmailGroups","isUnsubscribed","checked","setSubscriptionGroups","getSubscriptionGroups","changeSubscriptionGroups","updatedGroups","isGlobalUnsubscribe","setIsGlobalUnsubscribe","setUpdatedCategoryLong","$CLTP_WR","$WZRK_WR","currLocation","wzrk_ex","pageChanged","backupInterval","pgCount","referrerDomain","referrer","maxLen","utmSource","utm_source","wzrk_source","us","utmMedium","utm_medium","wzrk_medium","um","utmCampaign","utm_campaign","wzrk_campaign","uc","wm","cpg","setOffline","arg","getSDKVersion","defineVariable","timeout","debouncedPageChanged","wzrk_d","ping","Clevertap"],"mappings":"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CAAC,CAACE,GAAd,CAAA;EACA,QAAA,IAAIC,IAAI,GAAGF,KAAK,CAACE,IAAjB,CAAA;EACA,QAAA,IAAI8F,YAAY,GAAGhG,KAAK,CAACc,SAAzB,CAAA;EAEL;EACA;EACA;;EACK,QAAA,IAAImF,KAAK,GAAGlG,CAAC,CAACmG,GAAF,GAAQ,EAApB,CAAA;EAEL;EACA;EACA;;EACK,QAAcD,KAAK,CAACE,IAAN,GAAajG,IAAI,CAACC,MAAL,CAAY;EAC5C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACSG,UAAAA,IAAI,EAAE,UAAU8F,IAAV,EAAgBC,GAAhB,EAAqB;EACvB,YAAKD,IAAAA,CAAAA,IAAL,GAAYA,IAAZ,CAAA;EACA,YAAKC,IAAAA,CAAAA,GAAL,GAAWA,GAAX,CAAA;EACb,WAAA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA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"} \ No newline at end of file diff --git a/clevertap.min.js b/clevertap.min.js index c0d392e0..9904884f 100644 --- a/clevertap.min.js +++ b/clevertap.min.js @@ -12,4 +12,4 @@ i.mode.CTRGladman=function(){var e=i.lib.BlockCipherMode.extend();function t(e){ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -function(e){var t=i,o=t.lib,n=o.WordArray,r=o.Hasher,s=t.algo,a=n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=n.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=n.create([0,1518500249,1859775393,2400959708,2840853838]),u=n.create([1352829926,1548603684,1836072691,2053994217,0]),p=s.RIPEMD160=r.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var i=0;i<16;i++){var o=t+i,n=e[o];e[o]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var r,s,p,w,k,x,C,_,S,I,M,P=this._hash.words,O=h.words,A=u.words,E=a.words,D=l.words,z=c.words,B=d.words;for(x=r=P[0],C=s=P[1],_=p=P[2],S=w=P[3],I=k=P[4],i=0;i<80;i+=1)M=r+e[t+E[i]]|0,M+=i<16?g(s,p,w)+O[0]:i<32?f(s,p,w)+O[1]:i<48?v(s,p,w)+O[2]:i<64?y(s,p,w)+O[3]:b(s,p,w)+O[4],M=(M=m(M|=0,z[i]))+k|0,r=k,k=w,w=m(p,10),p=s,s=M,M=x+e[t+D[i]]|0,M+=i<16?b(C,_,S)+A[0]:i<32?y(C,_,S)+A[1]:i<48?v(C,_,S)+A[2]:i<64?f(C,_,S)+A[3]:g(C,_,S)+A[4],M=(M=m(M|=0,B[i]))+I|0,x=I,I=S,S=m(_,10),_=C,C=M;M=P[1]+p+S|0,P[1]=P[2]+w+I|0,P[2]=P[3]+k+x|0,P[3]=P[4]+r+C|0,P[4]=P[0]+s+_|0,P[0]=M},_doFinalize:function(){var e=this._data,t=e.words,i=8*this._nDataBytes,o=8*e.sigBytes;t[o>>>5]|=128<<24-o%32,t[14+(o+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),e.sigBytes=4*(t.length+1),this._process();for(var n=this._hash,r=n.words,s=0;s<5;s++){var a=r[s];r[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function g(e,t,i){return e^t^i}function f(e,t,i){return e&t|~e&i}function v(e,t,i){return(e|~t)^i}function y(e,t,i){return e&i|t&~i}function b(e,t,i){return e^(t|~i)}function m(e,t){return e<>>32-t}t.RIPEMD160=r._createHelper(p),t.HmacRIPEMD160=r._createHmacHelper(p)}(),i.RIPEMD160)}(tt)),nt(),rt||(rt=1,function(e,t){var i,o,n,r,s,a,l,c,d;e.exports=(d=me(),He(),nt(),n=(o=(i=d).lib).Base,r=o.WordArray,a=(s=i.algo).SHA256,l=s.HMAC,c=s.PBKDF2=n.extend({cfg:n.extend({keySize:4,hasher:a,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var i=this.cfg,o=l.create(i.hasher,e),n=r.create(),s=r.create([1]),a=n.words,c=s.words,d=i.keySize,h=i.iterations;a.length>>2]|=n<<24-r%4*8,e.sigBytes+=n},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Ansix923)}(Pt)),Ot||(Ot=1,function(e,t){var i;e.exports=(i=me(),ut(),i.pad.Iso10126={pad:function(e,t){var o=4*t,n=o-e.sigBytes%o;e.concat(i.lib.WordArray.random(n-1)).concat(i.lib.WordArray.create([n<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Iso10126)}(At)),Et||(Et=1,function(e,t){var i;e.exports=(i=me(),ut(),i.pad.Iso97971={pad:function(e,t){e.concat(i.lib.WordArray.create([2147483648],1)),i.pad.ZeroPadding.pad(e,t)},unpad:function(e){i.pad.ZeroPadding.unpad(e),e.sigBytes--}},i.pad.Iso97971)}(Dt)),zt||(zt=1,function(e,t){var i;e.exports=(i=me(),ut(),i.pad.ZeroPadding={pad:function(e,t){var i=4*t;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){var t=e.words,i=e.sigBytes-1;for(i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},i.pad.ZeroPadding)}(Bt)),Lt||(Lt=1,function(e,t){var i;e.exports=(i=me(),ut(),i.pad.NoPadding={pad:function(){},unpad:function(){}},i.pad.NoPadding)}(Tt)),Nt||(Nt=1,function(e,t){var i,o,n,r;e.exports=(r=me(),ut(),o=(i=r).lib.CipherParams,n=i.enc.Hex,i.format.Hex={stringify:function(e){return e.ciphertext.toString(n)},parse:function(e){var t=n.parse(e);return o.create({ciphertext:t})}},r.format.Hex)}(jt)),Rt||(Rt=1,function(e,t){var i;e.exports=(i=me(),Ee(),Ne(),ct(),ut(),function(){var e=i,t=e.lib.BlockCipher,o=e.algo,n=[],r=[],s=[],a=[],l=[],c=[],d=[],h=[],u=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var i=0,o=0;for(t=0;t<256;t++){var g=o^o<<1^o<<2^o<<3^o<<4;g=g>>>8^255&g^99,n[i]=g,r[g]=i;var f=e[i],v=e[f],y=e[v],b=257*e[g]^16843008*g;s[i]=b<<24|b>>>8,a[i]=b<<16|b>>>16,l[i]=b<<8|b>>>24,c[i]=b,b=16843009*y^65537*v^257*f^16843008*i,d[g]=b<<24|b>>>8,h[g]=b<<16|b>>>16,u[g]=b<<8|b>>>24,p[g]=b,i?(i=f^e[e[e[y^f]]],o^=e[e[o]]):i=o=1}}();var g=[0,1,2,4,8,16,32,64,128,27,54],f=o.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,i=e.sigBytes/4,o=4*((this._nRounds=i+6)+1),r=this._keySchedule=[],s=0;s6&&s%i==4&&(c=n[c>>>24]<<24|n[c>>>16&255]<<16|n[c>>>8&255]<<8|n[255&c]):(c=n[(c=c<<8|c>>>24)>>>24]<<24|n[c>>>16&255]<<16|n[c>>>8&255]<<8|n[255&c],c^=g[s/i|0]<<24),r[s]=r[s-i]^c);for(var a=this._invKeySchedule=[],l=0;l>>24]]^h[n[c>>>16&255]]^u[n[c>>>8&255]]^p[n[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,s,a,l,c,n)},decryptBlock:function(e,t){var i=e[t+1];e[t+1]=e[t+3],e[t+3]=i,this._doCryptBlock(e,t,this._invKeySchedule,d,h,u,p,r),i=e[t+1],e[t+1]=e[t+3],e[t+3]=i},_doCryptBlock:function(e,t,i,o,n,r,s,a){for(var l=this._nRounds,c=e[t]^i[0],d=e[t+1]^i[1],h=e[t+2]^i[2],u=e[t+3]^i[3],p=4,g=1;g>>24]^n[d>>>16&255]^r[h>>>8&255]^s[255&u]^i[p++],v=o[d>>>24]^n[h>>>16&255]^r[u>>>8&255]^s[255&c]^i[p++],y=o[h>>>24]^n[u>>>16&255]^r[c>>>8&255]^s[255&d]^i[p++],b=o[u>>>24]^n[c>>>16&255]^r[d>>>8&255]^s[255&h]^i[p++];c=f,d=v,h=y,u=b}f=(a[c>>>24]<<24|a[d>>>16&255]<<16|a[h>>>8&255]<<8|a[255&u])^i[p++],v=(a[d>>>24]<<24|a[h>>>16&255]<<16|a[u>>>8&255]<<8|a[255&c])^i[p++],y=(a[h>>>24]<<24|a[u>>>16&255]<<16|a[c>>>8&255]<<8|a[255&d])^i[p++],b=(a[u>>>24]<<24|a[c>>>16&255]<<16|a[d>>>8&255]<<8|a[255&h])^i[p++],e[t]=f,e[t+1]=v,e[t+2]=y,e[t+3]=b},keySize:8});e.AES=t._createHelper(f)}(),i.AES)}(Ut)),Ht(),Vt||(Vt=1,function(e,t){var i;e.exports=(i=me(),Ee(),Ne(),ct(),ut(),function(){var e=i,t=e.lib.StreamCipher,o=e.algo,n=o.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,i=e.sigBytes,o=this._S=[],n=0;n<256;n++)o[n]=n;n=0;for(var r=0;n<256;n++){var s=n%i,a=t[s>>>2]>>>24-s%4*8&255;r=(r+o[n]+a)%256;var l=o[n];o[n]=o[r],o[r]=l}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=r.call(this)},keySize:8,ivSize:0});function r(){for(var e=this._S,t=this._i,i=this._j,o=0,n=0;n<4;n++){i=(i+e[t=(t+1)%256])%256;var r=e[t];e[t]=e[i],e[i]=r,o|=e[(e[t]+e[i])%256]<<24-8*n}return this._i=t,this._j=i,o}e.RC4=t._createHelper(n);var s=o.RC4Drop=n.extend({cfg:n.cfg.extend({drop:192}),_doReset:function(){n._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)r.call(this)}});e.RC4Drop=t._createHelper(s)}(),i.RC4)}(qt)),Kt||(Kt=1,function(e,t){var i;e.exports=(i=me(),Ee(),Ne(),ct(),ut(),function(){var e=i,t=e.lib.StreamCipher,o=e.algo,n=[],r=[],s=[],a=o.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,i=0;i<4;i++)e[i]=16711935&(e[i]<<8|e[i]>>>24)|4278255360&(e[i]<<24|e[i]>>>8);var o=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,i=0;i<4;i++)l.call(this);for(i=0;i<8;i++)n[i]^=o[i+4&7];if(t){var r=t.words,s=r[0],a=r[1],c=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=c>>>16|4294901760&d,u=d<<16|65535&c;for(n[0]^=c,n[1]^=h,n[2]^=d,n[3]^=u,n[4]^=c,n[5]^=h,n[6]^=d,n[7]^=u,i=0;i<4;i++)l.call(this)}},_doProcessBlock:function(e,t){var i=this._X;l.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)n[o]=16711935&(n[o]<<8|n[o]>>>24)|4278255360&(n[o]<<24|n[o]>>>8),e[t+o]^=n[o]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,i=0;i<8;i++)r[i]=t[i];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,i=0;i<8;i++){var o=e[i]+t[i],n=65535&o,a=o>>>16,l=((n*n>>>17)+n*a>>>15)+a*a,c=((4294901760&o)*o|0)+((65535&o)*o|0);s[i]=l^c}e[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,e[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,e[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,e[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,e[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,e[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,e[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,e[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}e.Rabbit=t._createHelper(a)}(),i.Rabbit)}(Gt)),Zt||(Zt=1,function(e,t){var i;e.exports=(i=me(),Ee(),Ne(),ct(),ut(),function(){var e=i,t=e.lib.StreamCipher,o=e.algo,n=[],r=[],s=[],a=o.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,i=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var n=0;n<4;n++)l.call(this);for(n=0;n<8;n++)o[n]^=i[n+4&7];if(t){var r=t.words,s=r[0],a=r[1],c=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=c>>>16|4294901760&d,u=d<<16|65535&c;for(o[0]^=c,o[1]^=h,o[2]^=d,o[3]^=u,o[4]^=c,o[5]^=h,o[6]^=d,o[7]^=u,n=0;n<4;n++)l.call(this)}},_doProcessBlock:function(e,t){var i=this._X;l.call(this),n[0]=i[0]^i[5]>>>16^i[3]<<16,n[1]=i[2]^i[7]>>>16^i[5]<<16,n[2]=i[4]^i[1]>>>16^i[7]<<16,n[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)n[o]=16711935&(n[o]<<8|n[o]>>>24)|4278255360&(n[o]<<24|n[o]>>>8),e[t+o]^=n[o]},blockSize:4,ivSize:2});function l(){for(var e=this._X,t=this._C,i=0;i<8;i++)r[i]=t[i];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,i=0;i<8;i++){var o=e[i]+t[i],n=65535&o,a=o>>>16,l=((n*n>>>17)+n*a>>>15)+a*a,c=((4294901760&o)*o|0)+((65535&o)*o|0);s[i]=l^c}e[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,e[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,e[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,e[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,e[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,e[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,e[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,e[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}e.RabbitLegacy=t._createHelper(a)}(),i.RabbitLegacy)}(Jt)),$t(),i)}(ve)),ve.exports),ti=t("key"),ii=t("logger"),oi=t("encryptLocalStorage");const ni=new class{constructor(){Object.defineProperty(this,ti,{writable:!0,value:void 0}),Object.defineProperty(this,ii,{writable:!0,value:void 0}),Object.defineProperty(this,oi,{writable:!0,value:!1})}set logger(e){i(this,ii)[ii]=e}get logger(){return i(this,ii)[ii]}set key(e){i(this,ti)[ti]=e}get key(){return i(this,ti)[ti]}set enableLocalStorageEncryption(e){i(this,oi)[oi]=e}get enableLocalStorageEncryption(){return i(this,oi)[oi]}shouldEncrypt(e){return i(this,oi)[oi]&&ee.includes(e)}shouldDecrypt(e){return ee.includes(e)}encrypt(e){return ei.AES.encrypt(e,this.key).toString()}decrypt(e){const t=ei.AES.decrypt(e,this.key).toString(ei.enc.Utf8);return""===t?e:t}};class ri{static save(e,t){return!(!e||!t)&&(this._isLocalStorageSupported()?ni.shouldEncrypt(e)?(localStorage.setItem(e,ni.encrypt(t)),!0):(localStorage.setItem(e,"string"==typeof t?t:JSON.stringify(t)),!0):void 0)}static read(e){if(!e)return!1;let t=null;if(this._isLocalStorageSupported()&&(t=localStorage.getItem(e)),null!=t)try{ni.shouldDecrypt(e)&&(t=ni.decrypt(t)),t=JSON.parse(t)}catch(e){}return t}static remove(e){return!!e&&(this._isLocalStorageSupported()?(localStorage.removeItem(e),!0):void 0)}static removeCookie(e,t){let i=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";t&&(i=i+" domain="+t+"; path=/"),document.cookie=i}static createCookie(e,t,i,o){let n="",r="";if(i){const e=new Date;e.setTime(e.getTime()+1e3*i),n="; expires="+e.toGMTString()}o&&(r="; domain="+o),t=encodeURIComponent(t),document.cookie=e+"="+t+n+r+"; path=/"}static readCookie(e){const t=e+"=",i=document.cookie.split(";");for(let e=0;e=0;o--){if(a=0===o?s[o]+a:"."+s[o]+a,this.readCookie(e)){var n="test_"+e+o;if(this.createCookie(n,t,10,a),!this.readCookie(n))continue;this.removeCookie(n,a)}this.createCookie(e,t,i,a);if(this.readCookie(e)==t){r=a,si.broadDomain=r;break}}}else this.createCookie(e,t,i,r)}else this.createCookie(e,t,i,o)}static getMetaProp(e){const t=this.readFromLSorCookie(x);if(null!=t)return t[e]}static setMetaProp(e,t){if(this._isLocalStorageSupported()){let i=this.readFromLSorCookie(x);null==i&&(i={}),void 0===t?delete i[e]:i[e]=t,this.saveToLSorCookie(x,i)}}static getAndClearMetaProp(e){const t=this.getMetaProp(e);return this.setMetaProp(e,void 0),t}static setInstantDeleteFlagInK(){let e=this.readFromLSorCookie(b);null==e&&(e={}),e.flag=!0,this.saveToLSorCookie(b,e)}static backupEvent(e,t,i){let o=this.readFromLSorCookie(I);void 0===o&&(o={}),o[t]={q:e},this.saveToLSorCookie(I,o),i.debug("stored in ".concat(I," reqNo : ").concat(t," -> ").concat(e))}static removeBackup(e,t){const i=this.readFromLSorCookie(I);null!=i&&void 0!==i[e]&&(t.debug("del event: ".concat(e," data-> ").concat(i[e].q)),delete i[e],this.saveToLSorCookie(I,i))}}const si={globalCache:{gcookie:null,REQ_N:0,RESP_N:0},LRU_CACHE:null,globalProfileMap:void 0,globalEventsMap:void 0,blockRequest:!1,isOptInRequest:!1,broadDomain:null,webPushEnabled:null,campaignDivMap:{},currentSessionId:null,wiz_counter:0,notifApi:{notifEnabledFromApi:!1},unsubGroups:[],updatedCategoryLong:null,inbox:null,isPrivacyArrPushed:!1,privacyArray:[],offline:!1,location:null,dismissSpamControl:!1,globalUnsubscribe:!0,flutterVersion:null,variableStore:{},pushConfig:null};var ai=t("keyOrder"),li=t("deleteFromObject");class ci{constructor(e){Object.defineProperty(this,li,{value:di}),Object.defineProperty(this,ai,{writable:!0,value:void 0}),this.max=e;let t=ri.readFromLSorCookie(A);if(t){const e={};i(this,ai)[ai]=[],t=t.cache;for(const o in t)t.hasOwnProperty(o)&&(e[t[o][0]]=t[o][1],i(this,ai)[ai].push(t[o][0]));this.cache=e}else this.cache={},i(this,ai)[ai]=[]}get(e){const t=this.cache[e];return t&&(this.cache=i(this,li)[li](e,this.cache),this.cache[e]=t,i(this,ai)[ai].push(e)),this.saveCacheToLS(this.cache),t}set(e,t){const o=this.cache[e],n=i(this,ai)[ai];null!=o?this.cache=i(this,li)[li](e,this.cache):n.length===this.max&&(this.cache=i(this,li)[li](n[0],this.cache)),this.cache[e]=t,i(this,ai)[ai][i(this,ai)[ai]-1]!==e&&i(this,ai)[ai].push(e),this.saveCacheToLS(this.cache)}saveCacheToLS(e){const t=[],o=i(this,ai)[ai];for(const i in o)if(o.hasOwnProperty(i)){const n=[];n.push(o[i]),n.push(e[o[i]]),t.push(n)}ri.saveToLSorCookie(A,{cache:t})}getKey(e){if(null===e)return null;const t=i(this,ai)[ai];for(const i in t)if(t.hasOwnProperty(i)&&this.cache[t[i]]===e)return t[i];return null}getSecondLastKey(){const e=i(this,ai)[ai];return null!=e&&e.length>1?e[e.length-2]:-1}getLastKey(){const e=i(this,ai)[ai].length;if(e)return i(this,ai)[ai][e-1]}}var di=function(e,t){const o=JSON.parse(JSON.stringify(i(this,ai)[ai])),n={};let r;for(const i in o)o.hasOwnProperty(i)&&(o[i]!==e?n[o[i]]=t[o[i]]:r=i);return o.splice(r,1),i(this,ai)[ai]=JSON.parse(JSON.stringify(o)),n},hi=t("logger"),ui=t("request"),pi=t("device"),gi=t("session");class fi{constructor(e){let{logger:t,request:o,device:n,session:r}=e;Object.defineProperty(this,hi,{writable:!0,value:void 0}),Object.defineProperty(this,ui,{writable:!0,value:void 0}),Object.defineProperty(this,pi,{writable:!0,value:void 0}),Object.defineProperty(this,gi,{writable:!0,value:void 0}),i(this,hi)[hi]=t,i(this,ui)[ui]=o,i(this,pi)[pi]=n,i(this,gi)[gi]=r}s(e,t,o,n,r){let s=!1,a=!1;if(window.isOULInProgress&&(o||"undefined"!==n&&n===window.oulReqN)&&(window.isOULInProgress=!1,s=!0),void 0===n&&(n=0),ri.removeBackup(n,i(this,hi)[hi]),n>si.globalCache.REQ_N)return;if(ae(i(this,pi)[pi].gcookie)||e&&(a=!0),!ae(i(this,pi)[pi].gcookie)||o||"boolean"==typeof r){const n=i(this,gi)[gi].getSessionCookieObject();if(window.isOULInProgress||n.s&&t{if(ie(e)){for(var t in e)if(e.hasOwnProperty(t)){if(ie(e[t])||Array.isArray(e[t]))return!1;oe(e[t])&&(e[t]=ue(e[t]))}return!0}return!1},Di=(e,t)=>{if(ie(e)){for(var i in e)if(e.hasOwnProperty(i))if("Items"===i){if(!Array.isArray(e[i]))return!1;for(var o in e[i].length>50&&t.reportError(522,"Charged Items exceed 50 limit. Actual count: "+e[i].length),e[i])if(e[i].hasOwnProperty(o)&&(!ie(e[i][o])||!Ei(e[i][o])))return!1}else{if(ie(e[i])||Array.isArray(e[i]))return!1;oe(e[i])&&(e[i]=ue(e[i]))}if(te(e[f])||se(e[f])){const i=e[f]+"";if(void 0===Ai&&(Ai=ri.readFromLSorCookie(v)),void 0!==Ai&&Ai.trim()===i.trim())return t.error("Duplicate charged Id - Dropped"+e),!1;Ai=i,ri.saveToLSorCookie(v,i)}return!0}return!1};var zi=t("logger"),Bi=t("oldValues"),Li=t("request"),Ti=t("isPersonalisationActive"),Ni=t("processEventArray");class ji extends Array{constructor(e,t){let{logger:o,request:n,isPersonalisationActive:r}=e;super(),Object.defineProperty(this,Ni,{value:Ri}),Object.defineProperty(this,zi,{writable:!0,value:void 0}),Object.defineProperty(this,Bi,{writable:!0,value:void 0}),Object.defineProperty(this,Li,{writable:!0,value:void 0}),Object.defineProperty(this,Ti,{writable:!0,value:void 0}),i(this,zi)[zi]=o,i(this,Bi)[Bi]=t,i(this,Li)[Li]=n,i(this,Ti)[Ti]=r}push(){if(ri.readFromLSorCookie(_)){for(var e=arguments.length,t=new Array(e),o=0;o0;){var t=e.shift();if(!te(t)){i(this,zi)[zi].error(ki);continue}if(t.length>1024&&(t=t.substring(0,1024),i(this,zi)[zi].reportError(510,t+"... length exceeded 1024 chars. Trimmed.")),X.includes(t)){i(this,zi)[zi].reportError(513,t+" is a restricted system event. It cannot be used as an event name.");continue}const o={type:"event"};if(o.evtName=ce(t,h),0!==e.length){const n=e.shift();if(ie(n)){if("Charged"===t){if(!Di(n,i(this,zi)[zi])){i(this,zi)[zi].reportError(511,"Charged event structure invalid. Not sent.");continue}}else if(!Ei(n)){i(this,zi)[zi].reportError(512,t+" event structure invalid. Not sent.");continue}o.evtData=n}else e.unshift(n)}i(this,Li)[Li].processEvent(o)}};const Ui=e=>{const t={},i=e.indexOf("?");if(i>1){const o=e.substring(i+1);let n;const r=/\+/g,s=/([^&=]+)=?([^&]*)/g,a=function(e){let t=e.replace(r," ");try{t=decodeURIComponent(t)}catch(e){}return t};for(n=s.exec(o);n;)t[a(n[1])]=a(n[2]),n=s.exec(o)}return t},Fi=(e,t,i)=>e+"&"+t+"="+encodeURIComponent(i),Wi=()=>window.location.hostname,Hi=(e,t)=>(t&&"function"==typeof t.debug&&t.debug("dobj:"+e),qi(e)),Vi=(()=>{let e="",t=0;for(t=0;t<=25;t++)e+=String.fromCharCode(t+65);for(t=0;t<=25;t++)e+=String.fromCharCode(t+97);for(t=0;t<10;t++)e+=t;return e+"+/="})(),qi=e=>{if(null==e)return"";var t,i,o,n,r,s,a,l="",c=0;for(e=(e=>{if(null==e)return"";let t,i,o,n={},r={},s="",a="",l="",c=2,d=3,h=2,u="",p=0,g=0,f=String.fromCharCode;for(o=0;o>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,h),h++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,h),h++),n[a]=d++,l=String(s)}if(""!==l){if(Object.prototype.hasOwnProperty.call(r,l)){if(l.charCodeAt(0)<256){for(t=0;t>=1}else{for(i=1,t=0;t>=1}c--,0==c&&(c=Math.pow(2,h),h++),delete r[l]}else for(i=n[l],t=0;t>=1;c--,0==c&&(c=Math.pow(2,h),h++)}for(i=2,t=0;t>=1;for(;;){if(p<<=1,15==g){u+=f(p);break}g++}return u})(e);c<2*e.length;)c%2==0?(t=e.charCodeAt(c/2)>>8,i=255&e.charCodeAt(c/2),o=c/2+1>8:NaN):(t=255&e.charCodeAt((c-1)/2),(c+1)/2>8,o=255&e.charCodeAt((c+1)/2)):i=o=NaN),c+=3,n=t>>2,r=(3&t)<<4|i>>4,s=(15&i)<<2|o>>6,a=63&o,isNaN(i)?s=a=64:isNaN(o)&&(a=64),l=l+Vi.charAt(n)+Vi.charAt(r)+Vi.charAt(s)+Vi.charAt(a);return l};var Ki=t("fireRequest"),Gi=t("dropRequestDueToOptOut"),Zi=t("addUseIPToRequest"),Ji=t("addARPToRequest");class Qi{constructor(){this.networkRetryCount=0,this.minDelayFrequency=0}static fireRequest(e,t,o,n){i(this,Ki)[Ki](e,1,t,o,n)}getDelayFrequency(){if(this.logger.debug("Network retry #"+this.networkRetryCount),this.networkRetryCount<10)return this.logger.debug(this.account.id,"Failure count is "+this.networkRetryCount+". Setting delay frequency to 1s"),this.minDelayFrequency=q,this.minDelayFrequency;if(null==this.account.region)return this.logger.debug(this.account.id,"Setting delay frequency to 1s"),q;{const e=1e3*(Math.floor(10*Math.random())+1);return this.minDelayFrequency+=e,this.minDelayFrequency<6e5?(this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency):(this.minDelayFrequency=q,this.logger.debug(this.account.id,"Setting delay frequency to "+this.minDelayFrequency),this.minDelayFrequency)}}}Qi.logger=void 0,Qi.device=void 0,Qi.account=void 0,Object.defineProperty(Qi,Ki,{value:function(e,t,o,n,r){var s,a;if(i(this,Gi)[Gi]())return void this.logger.debug("req dropped due to optout cookie: "+this.device.gcookie);if(ae(this.device.gcookie)||(si.blockRequest=!0),r&&r===K)!ae(this.device.gcookie)&&si.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(this.networkRetryCount)),i(this,Ki)[Ki](e,void 0,o,n)}),this.getDelayFrequency());else if(!ae(this.device.gcookie)&&si.globalCache.RESP_N{this.logger.debug("retrying fire request for url: ".concat(e,", tries: ").concat(t)),i(this,Ki)[Ki](e,t+1,o,n)}),50);if(n?window.isOULInProgress=!0:(ae(this.device.gcookie)&&(e=Fi(e,"gc",this.device.gcookie)),e=i(this,Ji)[Ji](e,o)),e=Fi(e,"tries",t),e=i(this,Zi)[Zi](e),e=Fi(e,"r",(new Date).getTime()),(null===(s=window.clevertap)||void 0===s?void 0:s.hasOwnProperty("plugin"))||(null===(a=window.wizrocket)||void 0===a?void 0:a.hasOwnProperty("plugin"))){const t=window.clevertap.plugin||window.wizrocket.plugin;e=Fi(e,"ct_pl",t)}-1!==e.indexOf("chrome-extension:")&&(e=e.replace("chrome-extension:","https:"));for(var l=document.getElementsByClassName("ct-jp-cb");l[0]&&l[0].parentNode;)l[0].parentNode.removeChild(l[0]);const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",e),c.setAttribute("class","ct-jp-cb"),c.setAttribute("rel","nofollow"),c.async=!0,document.getElementsByTagName("head")[0].appendChild(c),this.logger.debug("req snt -> url: "+e)}}),Object.defineProperty(Qi,Gi,{value:function(){return!si.isOptInRequest&&ae(this.device.gcookie)&&te(this.device.gcookie)?":OO"===this.device.gcookie.slice(-3):(si.isOptInRequest=!1,!1)}}),Object.defineProperty(Qi,Zi,{value:function(e){var t=ri.getMetaProp(O);return"boolean"!=typeof t&&(t=!1),Fi(e,O,t?"true":"false")}}),Object.defineProperty(Qi,Ji,{value:function(e,t){if(!0===t){const t={skipResARP:!0};return Fi(e,"arp",Hi(JSON.stringify(t),this.logger))}return ri._isLocalStorageSupported()&&void 0!==localStorage.getItem(S)&&null!==localStorage.getItem(S)?Fi(e,"arp",Hi(JSON.stringify(ri.readFromLSorCookie(S)),this.logger)):e}});const Yi=()=>{let e={};if(ri._isLocalStorageSupported()){let t=ri.read(m);null!=t?(t=JSON.parse(decodeURIComponent(t).replace(p,'"')),t.hasOwnProperty("global")?e.wp=t:e=t):e={}}return e},$i=e=>{if(ri._isLocalStorageSupported()){const t={...Yi(),...e},i=JSON.stringify(t);ri.save(m,encodeURIComponent(i)),Xi()}},Xi=()=>{if(ri._isLocalStorageSupported()){let i=ri.read(y);if(ae(i))try{i=JSON.parse(decodeURIComponent(ri.read(y)));const o=ri.read(w)?JSON.parse(decodeURIComponent(ri.read(w))):{};if(i&&ri._isLocalStorageSupported()){var e={},t=Yi();Object.keys(t).forEach((n=>{const r=i in o&&Object.keys(o[i]).length&&o[i][n]?o[i][n]:{},s=t[n].global,a=de(),l=t[n][a];if(void 0!==s){const e=Object.keys(s);for(const t in e){let i=[];if(e.hasOwnProperty(t)){let o=0,n=0;const a=e[t];if("tc"===a)continue;void 0!==l&&void 0!==l[a]&&(o=l[a]),void 0!==s&&void 0!==s[a]&&(n=s[a]),i=[a,o,n],r[a]=i}}}e={...e,[n]:r}})),o[i]=e,ri.save(w,encodeURIComponent(JSON.stringify(o)))}}catch(e){console.error("Invalid clevertap Id "+e)}}},eo=()=>{const e=JSON.parse(decodeURIComponent(ri.read(y)));let t={};if(ri._isLocalStorageSupported()){let i={};t=Yi();const o=ri.read(w),n=o?decodeURIComponent(o):null,r=n?JSON.parse(n):null,s=e&&null!=o&&r&&r[e]&&r[e].wp?Object.values(r[e].wp):[],a=e&&null!=o&&r&&r[e]&&r[e].wi?Object.values(r[e].wi):[],l=de();let c=0,d=0;return t.wp&&t.wp[l]&&"undefined"!==t.wp[l].tc&&(c=t.wp[l].tc),t.wi&&t.wi[l]&&"undefined"!==t.wi[l].tc&&(d=t.wi[l].tc),i={wmp:c,wimp:d,tlc:s,witlc:a},i}},to=(e,t)=>{let{logger:i}=t,o=!1;if(ie(e))for(const t in e)if(e.hasOwnProperty(t)){o=!0;let n=e[t];if(null==n){delete e[t];continue}"Gender"!==t||n.match(/\b(?:[mM](?:ale)?|[fF](?:emale)?|[oO](?:thers)?|[uU](?:nknown)?)\b/)||(o=!1,i.error(xi)),"Employed"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(Ci)),"Married"!==t||n.match(/^Y$|^N$/)||(o=!1,i.error(_i)),"Education"!==t||n.match(/^School$|^College$|^Graduate$/)||(o=!1,i.error(Si)),"Age"===t&&null!=n&&(re(n)?e.Age=+n:(o=!1,i.error(Ii))),"DOB"===t?(/^\$D_/.test(n)&&11===(n+"").length||oe(n)||(o=!1,i.error(Mi)),oe(n)&&(e[t]=ue(n))):oe(n)&&(e[t]=ue(n)),"Phone"!==t||ne(n)||(n.length>8&&"+"===n.charAt(0)?(n=n.substring(1,n.length),re(n)?e.Phone=+n:(o=!1,i.error(Oi+". Removed."))):(o=!1,i.error(Oi+". Removed."))),o||delete e[t]}return o},io=e=>{const t={};t.Name=e.name,null!=e.id&&(t.FBID=e.id+""),"male"===e.gender?t.Gender="M":"female"===e.gender?t.Gender="F":t.Gender="O";null!=e.relationship_status&&(t.Married="N","Married"===e.relationship_status&&(t.Married="Y"));const i=function(e){if(null!=e){let t="",i="";for(let o=0;o0?"Y":"N",null!=e.email&&(t.Email=e.email),null!=e.birthday){const i=e.birthday.split("/");t.DOB=pe(i[2]+i[0]+i[1])}return t},oo=(e,t)=>{let{logger:i}=t;const o={};if(null!=e.displayName&&(o.Name=e.displayName),null!=e.id&&(o.GPID=e.id+""),null!=e.gender&&("male"===e.gender?o.Gender="M":"female"===e.gender?o.Gender="F":"other"===e.gender&&(o.Gender="O")),null!=e.image&&!1===e.image.isDefault&&(o.Photo=e.image.url.split("?sz")[0]),null!=e.emails)for(let t=0;t{if(ri._isLocalStorageSupported()){if(null==si.globalProfileMap&&(si.globalProfileMap=ri.readFromLSorCookie(C),null==si.globalProfileMap&&(si.globalProfileMap={})),null!=e._custom){const t=e._custom;for(const i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);delete e._custom}for(const i in e)if(e.hasOwnProperty(i)){if(si.globalProfileMap.hasOwnProperty(i)&&!t)continue;si.globalProfileMap[i]=e[i]}null!=si.globalProfileMap._custom&&delete si.globalProfileMap._custom,ri.saveToLSorCookie(C,si.globalProfileMap)}},ro=(e,t,i)=>{if(null!=e&&"-1"!==e&&ri._isLocalStorageSupported()){const t=Yi();let o=t.wp[i];null==o&&(o={},t[i]=o),o[e]="dnd",$i(t)}if(null!=si.campaignDivMap){const t=si.campaignDivMap[e];null!=t&&(document.getElementById(t).remove(),"intentPreview"===t?null!=document.getElementById("intentOpacityDiv")&&document.getElementById("intentOpacityDiv").remove():"wizParDiv0"===t?null!=document.getElementById("intentOpacityDiv0")&&document.getElementById("intentOpacityDiv0").remove():"wizParDiv2"===t&&null!=document.getElementById("intentOpacityDiv2")&&document.getElementById("intentOpacityDiv2").remove())}};var so=t("logger"),ao=t("request"),lo=t("account"),co=t("oldValues"),ho=t("isPersonalisationActive"),uo=t("processProfileArray");class po extends Array{constructor(e,t){let{logger:o,request:n,account:r,isPersonalisationActive:s}=e;super(),Object.defineProperty(this,uo,{value:go}),Object.defineProperty(this,so,{writable:!0,value:void 0}),Object.defineProperty(this,ao,{writable:!0,value:void 0}),Object.defineProperty(this,lo,{writable:!0,value:void 0}),Object.defineProperty(this,co,{writable:!0,value:void 0}),Object.defineProperty(this,ho,{writable:!0,value:void 0}),i(this,so)[so]=o,i(this,ao)[ao]=n,i(this,lo)[lo]=r,i(this,co)[co]=t,i(this,ho)[ho]=s}push(){if(ri.readFromLSorCookie(_)){for(var e=arguments.length,t=new Array(e),o=0;o{const t="number"==typeof e?e:e.toLowerCase();r.includes(t)||r.push(t)};if(Array.isArray(t))t.forEach((e=>{"string"==typeof e||"number"==typeof e?s(e):i(this,so)[so].error("Array supports only string or number type values")}));else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,so)[so].error("Unsupported value type");s(t)}si.globalProfileMap[e]=r,ri.saveToLSorCookie(C,si.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueRemove(e,t,o){if(null==si.globalProfileMap&&(si.globalProfileMap=ri.readFromLSorCookie(C)||{}),!si.globalProfileMap.hasOwnProperty(e))return void i(this,so)[so].error("The property ".concat(e," does not exist."));const n=t=>{const i=si.globalProfileMap[e].indexOf(t);-1!==i&&si.globalProfileMap[e].splice(i,1)};if(Array.isArray(t))t.forEach(n);else{if("string"!=typeof t&&"number"!=typeof t)return void i(this,so)[so].error("Unsupported propVal type");n(t)}0===si.globalProfileMap[e].length&&delete si.globalProfileMap[e],ri.saveToLSorCookie(C,si.globalProfileMap),this.sendMultiValueData(e,t,o)}_handleMultiValueDelete(e,t){var o;null==si.globalProfileMap&&(si.globalProfileMap=ri.readFromLSorCookie(C)),(null==si||null===(o=si.globalProfileMap)||void 0===o?void 0:o.hasOwnProperty(e))?delete si.globalProfileMap[e]:i(this,so)[so].error("The property ".concat(e," does not exist.")),ri.saveToLSorCookie(C,si.globalProfileMap),this.sendMultiValueData(e,null,t)}sendMultiValueData(e,t,o){let n={};const r={};n.type="profile",r[e]={[o]:o===W||t},null==r.tz&&(r.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),n.profile=r,n=i(this,ao)[ao].addSystemDataToObject(n,!0),i(this,ao)[ao].addFlags(n);const s=Hi(JSON.stringify(n),i(this,so)[so]);let a=i(this,lo)[lo].dataPostURL;a=Fi(a,"type",E),a=Fi(a,"d",s),i(this,ao)[ao].saveAndFireRequest(a,si.blockRequest)}}var go=function(e){if(Array.isArray(e)&&e.length>0)for(const t in e)if(e.hasOwnProperty(t)){const o=e[t];let n,r={};if(null!=o.Site){if(n=o.Site,ne(n)||!to(n,{logger:i(this,so)[so]}))return}else if(null!=o.Facebook){const e=o.Facebook;ne(e)||e.error||(n=io(e))}else if(null!=o["Google Plus"]){const e=o["Google Plus"];ne(e)||e.error||(n=oo(e,{logger:i(this,so)[so]}))}if(null!=n&&!ne(n)){r.type="profile",null==n.tz&&(n.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),r.profile=n,no(n,!0),r=i(this,ao)[ao].addSystemDataToObject(r,void 0),i(this,ao)[ao].addFlags(r);const e=Hi(JSON.stringify(r),i(this,so)[so]);let t=i(this,lo)[lo].dataPostURL;t=Fi(t,"type",E),t=Fi(t,"d",e),i(this,ao)[ao].saveAndFireRequest(t,si.blockRequest)}}},fo=t("request"),vo=t("logger"),yo=t("account"),bo=t("session"),mo=t("oldValues"),wo=t("device"),ko=t("processOUL"),xo=t("handleCookieFromCache"),Co=t("deleteUser"),_o=t("processLoginArray");class So extends Array{constructor(e,t){let{request:o,account:n,session:r,logger:s,device:a}=e;super(),Object.defineProperty(this,_o,{value:Oo}),Object.defineProperty(this,Co,{value:Po}),Object.defineProperty(this,xo,{value:Mo}),Object.defineProperty(this,ko,{value:Io}),Object.defineProperty(this,fo,{writable:!0,value:void 0}),Object.defineProperty(this,vo,{writable:!0,value:void 0}),Object.defineProperty(this,yo,{writable:!0,value:void 0}),Object.defineProperty(this,bo,{writable:!0,value:void 0}),Object.defineProperty(this,mo,{writable:!0,value:void 0}),Object.defineProperty(this,wo,{writable:!0,value:void 0}),i(this,fo)[fo]=o,i(this,yo)[yo]=n,i(this,bo)[bo]=r,i(this,vo)[vo]=s,i(this,mo)[mo]=t,i(this,wo)[wo]=a}clear(){i(this,vo)[vo].debug("clear called. Reset flag has been set."),i(this,Co)[Co](),ri.setMetaProp(g,!0)}push(){for(var e=arguments.length,t=new Array(e),o=0;o{let o=ri.readFromLSorCookie(b);const n=ri.readFromLSorCookie(y);let r;if(null==o)o={},r=e;else{r=o.id;let s=!1,a=!1;if(null==r&&(r=e[0],s=!0),null==si.LRU_CACHE&&ri._isLocalStorageSupported()&&(si.LRU_CACHE=new ci(100)),s)null!=n&&(si.LRU_CACHE.set(r,n),si.blockRequest=!1);else for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(si.LRU_CACHE.cache[i]){r=i,a=!0;break}}if(a){r!==si.LRU_CACHE.getLastKey()?i(this,xo)[xo]():(t=!1,ri.saveToLSorCookie(N,t));const e=si.LRU_CACHE.get(r);si.LRU_CACHE.set(r,e),ri.saveToLSorCookie(y,e),i(this,wo)[wo].gcookie=e;const o=si.LRU_CACHE.getSecondLastKey();if(ri.readFromLSorCookie(N)&&-1!==o){const e=si.LRU_CACHE.cache[o];i(this,fo)[fo].unregisterTokenForGuid(e)}}else s?null!=n&&(i(this,wo)[wo].gcookie=n,ri.saveToLSorCookie(y,n),t=!1):this.clear(),ri.saveToLSorCookie(N,!1),r=e[0]}o.id=r,ri.saveToLSorCookie(b,o)};if(Array.isArray(e)&&e.length>0)for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];let s,a={};if(null!=r.Site){if(s=r.Site,ne(s)||!to(s,{logger:i(this,vo)[vo]}))return}else if(null!=r.Facebook){const e=r.Facebook;ne(e)||e.error||(s=io(e))}else if(null!=r["Google Plus"]){const e=r["Google Plus"];ne(e)&&!e.error&&(s=oo(e,{logger:i(this,vo)[vo]}))}if(null!=s&&!ne(s)){a.type="profile",null==s.tz&&(s.tz=(new Date).toString().match(/([A-Z]+[\+-][0-9]+)/)[1]),a.profile=s;const e=[];ri._isLocalStorageSupported()&&(s.Identity&&e.push(s.Identity),s.Email&&e.push(s.Email),s.GPID&&e.push("GP:"+s.GPID),s.FBID&&e.push("FB:"+s.FBID),e.length>0&&o(e)),no(s,!0),a=i(this,fo)[fo].addSystemDataToObject(a,void 0),i(this,fo)[fo].addFlags(a),t&&(a.isOUL=!0);const n=Hi(JSON.stringify(a),i(this,vo)[vo]);let r=i(this,yo)[yo].dataPostURL;r=Fi(r,"type",E),r=Fi(r,"d",n),i(this,fo)[fo].saveAndFireRequest(r,si.blockRequest,t)}}},Mo=function(){si.blockRequest=!1,console.debug("Block request is false"),ri._isLocalStorageSupported()&&(delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ri.removeCookie(m,Wi()),ri.removeCookie(i(this,bo)[bo].cookieName,si.broadDomain),ri.removeCookie(S,si.broadDomain),i(this,bo)[bo].setSessionCookieObject("")},Po=function(){si.blockRequest=!0,i(this,vo)[vo].debug("Block request is true"),si.globalCache={gcookie:null,REQ_N:0,RESP_N:0},ri._isLocalStorageSupported()&&(delete localStorage.WZRK_G,delete localStorage.WZRK_K,delete localStorage.WZRK_PR,delete localStorage.WZRK_EV,delete localStorage.WZRK_META,delete localStorage.WZRK_ARP,delete localStorage.WZRK_CAMP,delete localStorage.WZRK_CHARGED_ID),ri.removeCookie(y,si.broadDomain),ri.removeCookie(m,Wi()),ri.removeCookie(b,Wi()),ri.removeCookie(i(this,bo)[bo].cookieName,si.broadDomain),ri.removeCookie(S,si.broadDomain),i(this,wo)[wo].gcookie=null,i(this,bo)[bo].setSessionCookieObject("")},Oo=function(e){if(Array.isArray(e)&&e.length>0){const t=e.pop();if(null!=t&&ie(t)&&(null!=t.Site&&Object.keys(t.Site).length>0||null!=t.Facebook&&Object.keys(t.Facebook).length>0||null!=t["Google Plus"]&&Object.keys(t["Google Plus"]).length>0)){ri.setInstantDeleteFlagInK();try{i(this,ko)[ko]([t])}catch(e){i(this,vo)[vo].debug(e)}}else i(this,vo)[vo].error("Profile object is in incorrect format")}};class Ao extends HTMLElement{constructor(){super(),this._target=null,this._session=null,this.shadow=null,this.popup=null,this.container=null,this.resizeObserver=null,this.shadow=this.attachShadow({mode:"open"})}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderImageOnlyPopup())}get session(){return this._session||""}set session(e){this._session=e}get msgId(){return this.target.wzrk_id}get pivotId(){return this.target.wzrk_pivot}get onClickUrl(){return this.target.display.onClickUrl}renderImageOnlyPopup(){const e=this.target.wzrk_id.split("_")[0],t=this.session.sessionId;this.shadow.innerHTML=this.getImageOnlyPopupContent(),this.popup=this.shadowRoot.getElementById("imageOnlyPopup"),this.container=this.shadowRoot.getElementById("container"),this.closeIcon=this.shadowRoot.getElementById("close"),this.popup.addEventListener("load",this.updateImageAndContainerWidth()),this.resizeObserver=new ResizeObserver((()=>this.handleResize(this.popup,this.container))),this.resizeObserver.observe(this.popup),this.closeIcon.addEventListener("click",(()=>{if(this.resizeObserver.unobserve(this.popup),document.getElementById("wzrkImageOnlyDiv").style.display="none",this.remove(),null!=e&&"-1"!==e&&ri._isLocalStorageSupported()){const i=Yi();let o=i.wp[t];null==o&&(o={},i[t]=o),o[e]="dnd",$i(i)}})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId}),this.onClickUrl&&this.popup.addEventListener("click",(()=>{this.target.display.window?window.open(this.onClickUrl,"_blank"):window.parent.location.href=this.onClickUrl,window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})}))}handleResize(e,t){const i=this.getRenderedImageWidth(e);t.style.setProperty("width","".concat(i,"px"))}getImageOnlyPopupContent(){return"\n ".concat(this.target.msgContent.css,"\n ").concat(this.target.msgContent.html,"\n ")}updateImageAndContainerWidth(){return()=>{const e=this.getRenderedImageWidth(this.popup);this.popup.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("width","".concat(e,"px")),this.container.style.setProperty("height","auto"),this.container.style.setProperty("position","fixed"),this.popup.style.setProperty("visibility","visible"),this.closeIcon.style.setProperty("visibility","visible"),document.getElementById("wzrkImageOnlyDiv").style.visibility="visible"}}getRenderedImageWidth(e){const t=e.naturalWidth/e.naturalHeight;return e.height*t}}class Eo extends HTMLElement{constructor(e,t){super(),this.wrapper=null,this.snackBar=null,this.shadow=this.attachShadow({mode:"open"}),this.config=e,this.message=t,this.renderMessage(t)}get pivotId(){return this.message.wzrk_pivot}get campaignId(){return this.message.wzrk_id}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}renderMessage(e){switch(this.wrapper=this.createEl("div","messageWrapper"),e.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":{const t=this.prepareBasicMessage(e.msg[0]);this.wrapper.appendChild(t)}}const t=this.createEl("div","timeStamp");if(t.innerHTML="".concat(Uo(e.id.split("_")[1]),""),!e.viewed){const e=this.createEl("span","unreadMarker");t.appendChild(e)}this.wrapper.appendChild(t),this.shadow.appendChild(this.wrapper)}prepareBasicMessage(e){const t=this.createEl("div","message");if(e.imageUrl){const i=this.addImage(e.imageUrl,"mainImg");t.appendChild(i)}const i=this.createEl("div","iconTitleDescWrapper");if(e.iconUrl){const t=this.addImage(e.iconUrl,"iconImg");i.appendChild(t)}const o=this.createEl("div","titleDescWrapper");if(e.title){const t=this.createEl("div","title");t.innerText=e.title,o.appendChild(t)}if(e.description){const t=this.createEl("div","description");t.innerText=e.description,o.appendChild(t)}if((e.title||e.description)&&i.appendChild(o),(e.iconUrl||e.title||e.description)&&t.appendChild(i),e.buttons&&e.buttons.length){const i=this.addButtons(e.buttons);t.appendChild(i)}return t}addButtons(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.createEl("div","buttonsContainer");let i=!1;return e.forEach(((e,o)=>{const n=this.createEl("button","button-".concat(o),"button");n.innerText=e.text,o>0&&(n.style.cssText+="margin-left: 2px;"),"copy"===e.action&&(i=!0),t.appendChild(n)})),i&&this.addSnackbar(t),t}addSnackbar(e){this.snackBar=this.createEl("div","snackbar-".concat(this.campaignId),"snackbar"),this.snackBar.innerHTML=Ho;const t=this.createEl("span","snackbar-msg-".concat(this.campaignId),"snackbar-msg");t.innerText="Copied to clipboard",this.snackBar.appendChild(t),e.appendChild(this.snackBar)}addImage(e,t){const i=this.createEl("div","".concat(t,"Container")),o=this.createEl("img",t);return o.setAttribute("src",e),o.setAttribute("loading","lazy"),i.appendChild(o),i}raiseClickedEvent(e,t){switch(this.message.templateType){case"text-only":case"text-with-icon":case"text-with-icon-and-image":this.raiseClickedForBasicTemplates(e,t)}}raiseClickedForBasicTemplates(e,t){const i=this.message.msg[0],o={msgId:this.campaignId,pivotId:this.pivotId};if("BUTTON"===e.tagName){const t=e.id.split("-")[1],n=i.buttons[t];o.kv={wzrk_c2a:n.text},"url"===n.action?n.openUrlInNewTab?window.open(n.url,"_blank"):window.location=n.url:"copy"===n.action&&(window.focus(),navigator.clipboard.writeText(n.clipboardText),this.snackBar.style.setProperty("display","flex","important"),setTimeout((()=>{this.snackBar.style.setProperty("display","none","important")}),2e3))}else"CT-INBOX-MESSAGE"===e.tagName&&i.onClickUrl&&(i.openUrlInNewTab?window.open(i.onClickUrl,"_blank"):window.location=i.onClickUrl);t?console.log("Notifiction clicked event will be raised at run time with payload ::",o):window.clevertap.renderNotificationClicked(o)}}class Do extends HTMLElement{constructor(e){super(),this.isInboxOpen=!1,this.isInboxFromFlutter=!1,this.selectedCategory=null,this.unviewedMessages={},this.unviewedCounter=0,this.isPreview=!1,this.inboxConfigForPreview={},this.inboxSelector=null,this.inbox=null,this.emptyInboxMsg=null,this.inboxCard=null,this.unviewedBadge=null,this.observer=null,this.selectedCategoryRef=null,this.addClickListenerOnDocument=(()=>e=>{if(e.composedPath().includes(this.inbox)){const t=e.path||e.composedPath&&e.composedPath();if(t.length){const e=t[0].id;if("closeInbox"===e)this.toggleInbox();else if(e.startsWith("category-"))this.prevCategoryRef=this.selectedCategoryRef,this.selectedCategoryRef=t[0],this.updateActiveCategory(t[0].innerText);else{const e=t.filter((e=>{var t;return(null===(t=e.id)||void 0===t?void 0:t.startsWith("button-"))||"CT-INBOX-MESSAGE"===e.tagName}));if(e.length){e[e.length-1].raiseClickedEvent(e[0],this.isPreview)}}}}else(this.checkForWebInbox(e)||this.isInboxOpen)&&(this.isInboxFromFlutter?this.isInboxFromFlutter=!1:this.toggleInbox(e))})(),this.setBadgeStyle=e=>{if(null!==this.unviewedBadge){this.unviewedBadge.innerText=e>9?"9+":e;const t=e>0&&document.getElementById(this.config.inboxSelector);this.unviewedBadge.style.display=t?"flex":"none"}},this.logger=e,this.shadow=this.attachShadow({mode:"open"})}get incomingMessages(){return[]}set incomingMessages(e){void 0===e&&(e=[]),e.length>0&&this.updateInboxMessages(e)}get incomingMessagesForPreview(){return[]}set incomingMessagesForPreview(e){void 0===e&&(e=[]);const t={};e.length>0&&this.inbox&&(this.isPreview=!0,this.unviewedCounter=0,e.forEach((e=>{const i="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=i,t[i]=e,this.unviewedMessages[i]=e,this.unviewedCounter++})),this.buildUIForMessages(t),this.updateUnviewedBadgeCounter())}connectedCallback(){this.init()}init(){this.config=this.isPreview?this.inboxConfigForPreview:ri.readFromLSorCookie(H)||{},0!==Object.keys(this.config).length&&(this.inboxSelector=document.getElementById(this.config.inboxSelector),null!==this.inboxSelector&&(this.config.styles.notificationsBadge?this.addUnviewedBadge():this.unviewedBadge&&this.unviewedBadge.remove(),this.createinbox(),document.removeEventListener("click",this.addClickListenerOnDocument),document.addEventListener("click",this.addClickListenerOnDocument),this.config.categories.length&&this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadow.innerHTML=this.getInboxStyles(),this.shadow.appendChild(this.inbox)))}addMsgsToInboxFromLS(){const e=this.deleteExpiredAndGetUnexpiredMsgs(!1),t=e?Object.keys(e):[];0!==t.length&&(t.forEach((t=>{e[t].viewed||(this.unviewedMessages[t]=e[t],this.unviewedCounter++)})),this.buildUIForMessages(e),this.updateUnviewedBadgeCounter())}deleteExpiredAndGetUnexpiredMsgs(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Lo();const i=Math.floor(Date.now()/1e3);for(const o in t)if(t[o].wzrk_ttl&&t[o].wzrk_ttl>0&&t[o].wzrk_ttl0&&(t=Object.values(t).sort(((e,t)=>t.date-e.date)).reduce(((e,t)=>(e[t.id]=t,e)),{})),To(t),t}updateInboxMessages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=this.deleteExpiredAndGetUnexpiredMsgs(),i=Date.now(),o={};e.forEach(((e,n)=>{const r="".concat(e.wzrk_id.split("_")[0],"_").concat(Date.now());e.id=r,e.date=i-n,e.viewed=0,t[r]=e,o[r]=e,this.unviewedMessages[r]=e,this.unviewedCounter++})),To(t),this.inbox&&(this.buildUIForMessages(o),this.updateUnviewedBadgeCounter())}createEl(e,t,i){const o=document.createElement(e);return o.setAttribute("id",t),o.setAttribute("part",i||t),o}addUnviewedBadge(){this.unviewedBadge||(this.unviewedBadge=this.createEl("div","unviewedBadge"),this.unviewedBadge.style.cssText="display: none; position: absolute; height: 16px; width: 26px; border-radius: 8px; background-color: ".concat(this.config.styles.notificationsBadge.backgroundColor,"; font-size: 12px; color: ").concat(this.config.styles.notificationsBadge.textColor,"; font-weight: bold; align-items: center; justify-content: center;"),document.body.appendChild(this.unviewedBadge)),this.updateUnviewedBadgePosition(),window.addEventListener("resize",(()=>{this.updateUnviewedBadgePosition()}))}updateUnviewedBadgePosition(){try{const e=document.getElementById(this.config.inboxSelector)||this.inboxSelector,{top:t,right:i}=e.getBoundingClientRect();this.unviewedBadge.style.top="".concat(t-8,"px"),this.unviewedBadge.style.left="".concat(i-8,"px")}catch(e){this.logger.debug("Error updating unviewed badge position:",e)}}createinbox(){this.inbox=this.createEl("div","inbox");const e=this.createEl("div","header"),t=this.createEl("div","headerTitle");t.innerText=this.config.title;const i=this.createEl("div","closeInbox");if(i.innerHTML="×",e.appendChild(t),e.appendChild(i),this.inbox.appendChild(e),this.config.categories.length){const e=this.createCategories();this.inbox.appendChild(e)}this.inboxCard=this.createEl("div","inboxCard"),this.inbox.appendChild(this.inboxCard),this.emptyInboxMsg=this.createEl("div","emptyInboxMsg"),this.emptyInboxMsg.innerText="All messages will be displayed here.",this.inboxCard.appendChild(this.emptyInboxMsg);const o={root:this.inboxCard,rootMargin:"0px",threshold:.5};this.observer=new IntersectionObserver(((e,t)=>{this.handleMessageViewed(e)}),o),this.addMsgsToInboxFromLS()}createCategories(){const e=this.createEl("div","categoriesContainer"),t=this.createEl("div","leftArrow");t.innerHTML=Wo,t.children[0].style="transform: rotate(180deg)",t.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(-70,0)})),e.appendChild(t);const i=this.createEl("div","categoriesWrapper");["All",...this.config.categories].forEach(((e,t)=>{const o=this.createEl("div","category-".concat(t),"category");o.innerText=e,0===t&&(this.selectedCategoryRef=o),i.appendChild(o)})),e.appendChild(i);const o=this.createEl("div","rightArrow");o.innerHTML=Wo,o.addEventListener("click",(()=>{this.shadowRoot.getElementById("categoriesWrapper").scrollBy(70,0)})),e.appendChild(o);const n={root:e,threshold:.9},r=i.children[0],s=i.children[this.config.categories.length];new IntersectionObserver((e=>{this.categoryObserverCb(t,e[0].intersectionRatio>=.9)}),n).observe(r);return new IntersectionObserver((e=>{this.categoryObserverCb(o,e[0].intersectionRatio>=.9)}),n).observe(s),e}categoryObserverCb(e,t){e&&(e.style.display=t?"none":"flex")}updateActiveCategory(e){this.selectedCategory=e,this.inboxCard.scrollTop=0;let t=0;this.prevCategoryRef&&this.prevCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef.setAttribute("selected","true"),this.inboxCard.childNodes.forEach((e=>{"emptyInboxMsg"!==e.getAttribute("id")&&(e.style.display="All"===this.selectedCategory||e.getAttribute("category")===this.selectedCategory?"block":"none","block"===e.style.display&&t++)})),0===t?(this.emptyInboxMsg.innerText="".concat(e," messages will be displayed here."),this.emptyInboxMsg.style.display="block"):this.emptyInboxMsg.style.display="none"}buildUIForMessages(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!this.isPreview&&this.updateTSForRenderedMsgs(),this.inboxCard.scrollTop=0;const i=null!==(e=this.config.maxMsgsInInbox)&&void 0!==e?e:15,o=this.inboxCard.firstChild,n=Object.values(t).sort(((e,t)=>t.date-e.date)).map((e=>e.id));for(const e of n){const i=new Eo(this.config,t[e]);i.setAttribute("id",t[e].id),i.setAttribute("pivot",t[e].wzrk_pivot),i.setAttribute("part","ct-inbox-message"),this.config.categories.length>0?(i.setAttribute("category",t[e].tags[0]||""),i.style.display="All"===this.selectedCategory||t[e].category===this.selectedCategory?"block":"none"):i.style.display="block",this.inboxCard.insertBefore(i,o),this.observer.observe(i)}let r=this.inboxCard.querySelectorAll("ct-inbox-message").length;for(;r>i;){const e=this.inboxCard.querySelectorAll("ct-inbox-message");e.length>0&&e[e.length-1].remove(),r--}const s=this.inboxCard.querySelectorAll('ct-inbox-message[style*="display: block"]').length;this.emptyInboxMsg.style.display=s?"none":"block"}checkForWebInbox(e){var t;const i=ri.readFromLSorCookie(H)||{},o=document.getElementById(i.inboxSelector);return(null===(t=this.inboxSelector)||void 0===t?void 0:t.contains(e.target))||(null==o?void 0:o.contains(e.target))}handleMessageViewed(e){const t=!this.isPreview;this.isInboxOpen&&e.forEach((e=>{e.isIntersecting&&this.unviewedMessages.hasOwnProperty(e.target.id)&&0===e.target.message.viewed&&(e.target.message.viewed=1,t?(window.clevertap.renderNotificationViewed({msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.updateMessageInLS(e.target.id,{...e.target.message,viewed:1}),setTimeout((()=>{e.target.shadowRoot.getElementById("unreadMarker").style.display="none"}),1e3)):console.log("Notifiction viewed event will be raised at run time with payload ::",{msgId:e.target.campaignId,pivotId:e.target.pivotId}),this.unviewedCounter--,this.updateUnviewedBadgeCounter(),delete this.unviewedMessages[e.target.id])}))}updateMessageInLS(e,t){if(!this.isPreview){const i=Lo();i[e]=t,To(i)}}toggleInbox(e){this.isInboxOpen=!this.isInboxOpen,this.isInboxFromFlutter=!!(null==e?void 0:e.rect),this.isInboxOpen?(this.inboxCard.scrollTop=0,!this.isPreview&&this.deleteExpiredAndGetUnexpiredMsgs(),this.inbox.style.display="block",this.inbox.style.zIndex="2147483647",this.config.categories.length&&(this.selectedCategoryRef.setAttribute("selected","false"),this.selectedCategoryRef=this.shadowRoot.getElementById("category-0"),this.updateActiveCategory(this.selectedCategoryRef.innerText),this.shadowRoot.getElementById("categoriesWrapper").scrollLeft-=this.shadowRoot.getElementById("categoriesWrapper").scrollWidth),this.setInboxPosition(e)):this.inbox.style.display="none"}setInboxPosition(e){const t=window.outerWidth,i=getComputedStyle(si.inbox),o=i.getPropertyValue("--inbox-top"),n=i.getPropertyValue("--inbox-bottom"),r=i.getPropertyValue("--inbox-left"),s=i.getPropertyValue("--inbox-right");if(t>481&&!(o||n||r||s)){const t=Ro(e,this.inbox.clientHeight,this.inbox.clientWidth),i=t.xPos,o=t.yPos;this.inbox.style.top=o+"px",this.inbox.style.left=i+"px"}}updateUnviewedBadgeCounter(){if(this.isPreview)return void this.setBadgeStyle(this.unviewedCounter);let e=0;this.inboxCard.querySelectorAll("ct-inbox-message").forEach((t=>{const i=Lo();i[t.id]&&0===i[t.id].viewed&&e++})),this.setBadgeStyle(e)}updateTSForRenderedMsgs(){this.inboxCard.querySelectorAll("ct-inbox-message").forEach((e=>{const t=e.id.split("_")[1];e.shadow.getElementById("timeStamp").firstChild.innerText=Uo(t)}))}getInboxStyles(){const e=this.config.categories.length?64:16,t={panelBackgroundColor:this.config.styles.panelBackgroundColor,panelBorderColor:this.config.styles.panelBorderColor,headerBackgroundColor:this.config.styles.header.backgroundColor,headerTitleColor:this.config.styles.header.titleColor,closeIconColor:this.config.styles.closeIconColor,categoriesTabColor:this.config.styles.categories.tabColor,categoriesTitleColor:this.config.styles.categories.titleColor,selectedCategoryTabColor:this.config.styles.categories.selectedTab.tabColor,selectedCategoryTitleColor:this.config.styles.categories.selectedTab.titleColor,headerCategoryHeight:36+e};this.config.styles.categories.borderColor&&(t.categoriesBorderColor=this.config.styles.categories.borderColor),this.config.styles.categories.selectedTab.borderColor&&(t.selectedCategoryBorderColor=this.config.styles.categories.selectedTab.borderColor);const i=(e=>{let{panelBackgroundColor:t,panelBorderColor:i,headerBackgroundColor:o,headerTitleColor:n,closeIconColor:r,categoriesTabColor:s,categoriesTitleColor:a,categoriesBorderColor:l,selectedCategoryTabColor:c,selectedCategoryTitleColor:d,selectedCategoryBorderColor:h,headerCategoryHeight:u}=e;return'\n \n ")})(t),o=this.config.styles.cards;return i+(e=>{let{backgroundColor:t,borderColor:i,titleColor:o,descriptionColor:n,buttonColor:r,buttonTextColor:s,unreadMarkerColor:a}=e;return'\n \n ")})({backgroundColor:o.backgroundColor,borderColor:o.borderColor,titleColor:o.titleColor,descriptionColor:o.descriptionColor,buttonColor:o.buttonColor,buttonTextColor:o.buttonTextColor,unreadMarkerColor:o.unreadMarkerColor})}}const zo=e=>{e.inbox_preview?si.inbox.incomingMessagesForPreview=e.inbox_notifs:si.inbox.incomingMessages=e},Bo=e=>{const t=ri.readFromLSorCookie(V)||{};if(Object.keys(t).length>0&&Object.keys(t)[0].includes("_")){const i={};return i[e]=t,ri.saveToLSorCookie(V,i),i}return t},Lo=()=>{const e=JSON.parse(decodeURIComponent(ri.read(y)));if(!ae(e))return{};const t=Bo(e);return t.hasOwnProperty(e)?t[e]:{}},To=e=>{const t=JSON.parse(decodeURIComponent(ri.read(y)));if(!ae(t))return;const i={...Bo(t),[t]:e};ri.saveToLSorCookie(V,i)},No=e=>new Promise(((t,i)=>{const o=()=>{null===si.inbox&&(e=>{jo(),si.inbox=new Do({logger:e}),document.body.appendChild(si.inbox)})(e)},n=()=>{const t=ri.readFromLSorCookie(H)||{};return t.inboxSelector?document.getElementById(t.inboxSelector)&&null===si.inbox:(e.debug("Inbox selector is not configured"),!1)},r=()=>{e.debug("Failed to add inbox")};let s=!1;const a=()=>{s||(s=!0,function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20;return new Promise(((n,r)=>{let s=0;const a=setInterval((()=>{e.debug("Retry attempt: ".concat(s+1)),t()||null!==si.inbox?(clearInterval(a),n()):s>=o&&(clearInterval(a),r(new Error("Condition not met within max retries"))),s++}),i)}))}(n,500,20).then((()=>{o(),t()})).catch(r))};"complete"===document.readyState?a():(window.addEventListener("load",a),document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&a()})))})),jo=()=>{void 0===customElements.get("ct-web-inbox")&&(customElements.define("ct-web-inbox",Do),customElements.define("ct-inbox-message",Eo))},Ro=(e,t,i)=>{const o=document.scrollingElement.scrollLeft,n=document.scrollingElement.scrollTop,r=window.innerWidth+o,s=window.innerHeight+n,a=e.rect||e.target.getBoundingClientRect(),l=a.x+o,c=a.y+n,d=a.left+o,h=a.right+o,u=a.top+n,p=a.bottom,g=a.height,f=a.width;let v,y,b=!1;const m=16;if(p+t<=s){const e=s-(p+t);y=e>=m?p+m:p+e}else if(u-t>=n){const e=u-t;y=e>=m?u-t-m:u-t-e}else b=!0,y=c+g/2-t/2,ys&&(y=s-t);if(b){const e=h+i;if(e<=r){v=h+(e+m<=r?m:r-e)}else{const e=d-i;v=e-(e-m>=o?m:e-o)}}else v=l+f/2-i/2,vr&&(v=h-i>=o?h-i:r-i);return{xPos:v,yPos:y}},Uo=e=>{const t=Date.now();let i=Math.floor((t-e)/6e4);return i<5?"Just now":i<60?"".concat(i," minute").concat(i>1?"s":""," ago"):(i=Math.floor(i/60),i<24?"".concat(i," hour").concat(i>1?"s":""," ago"):(i=Math.floor(i/24),"".concat(i," day").concat(i>1?"s":""," ago")))},Fo=()=>Object.keys(ri.readFromLSorCookie(H)||{}).length>0,Wo='\n\n\n',Ho='\n\n\n',Vo="https://web-native-display-campaign.clevertap.com/production/lib-overlay/style.css",qo="wve-anti-flicker-show",Ko="wve-anti-flicker-hide",Go="wve-flicker-style",Zo="ctBuilder",Jo="ctBuilderPreview",Qo="ctBuilderSDKCheck",Yo=e=>{if(e.data&&function(e){try{const t=new URL(e);return Boolean(t)}catch(e){return!1}}(e.data.originUrl)){{const t=new URL(e.data.originUrl).origin;if(e.origin!==t)return}var t,i;if("Dashboard"===e.data.message)window.evtMaster=e.data.personalisation.evtMaster,$o(e.data.url,null!==(t=e.data.variant)&&void 0!==t?t:null,null!==(i=e.data.details)&&void 0!==i?i:{},e.data.personalisation);else"Overlay"===e.data.message&&nn(e.data,!0)}},$o=(e,t,i,o)=>{"complete"===document.readyState?on(e,t,i,o):document.addEventListener("readystatechange",(()=>{"complete"===document.readyState&&on(e,t,i,o)}))};let Xo,en=!1,tn=!1;function on(e,t,i,o){if(!en){window.Shopify&&(tn=!0),document.body.innerHTML="",document.head.innerHTML="",document.documentElement.innerHTML="",Xo=document.createElement("div"),Xo.id="overlayDiv",Xo.style.position="relative",Xo.style.display="flex",document.body.appendChild(Xo);(function(e,t,i,o,n){return new Promise(((r,s)=>{var a=document.createElement("script");a.type="module",a.src=e,a.onload=function(){"function"==typeof window.Overlay?(window.Overlay({id:"#overlayDiv",url:t,variant:i,details:o,isShopify:tn,personalisation:n}),r()):s(new Error("ContentLayout not found in overlay.js"))},a.onerror=function(e){s(e)},document.head.appendChild(a)}))})("https://web-native-display-campaign.clevertap.com/production/lib-overlay/overlay.js",e,t,i,o).then((()=>{console.log("Overlay script loaded successfully."),en=!0})).catch((e=>{console.error("Error loading overlay script:",e)})),(n=document.createElement("link")).rel="stylesheet",n.type="text/css",n.href=Vo,document.head.appendChild(n)}var n}const nn=(e,t)=>{const i=[],o=t?e.details:e.display.details;let n=window.location.href;if(t){const e=new URL(n);e.searchParams.delete("ctActionMode"),n=e.toString()}let r=!1;const s={msgId:e.wzrk_id,pivotId:e.wzrk_pivot},a=()=>{t||r||(r=!0,window.clevertap.renderNotificationViewed(s))},l=(i,o)=>{var n;if(o.elementCSS&&(e=>{if(void 0!==e.elementCSS){const t=document.createElement("style");t.innerHTML=e.elementCSS,document.head.appendChild(t)}})(o),(null===(n=o.isTrackingClicks)||void 0===n?void 0:n.name)&&i.addEventListener("click",(()=>{(e=>{window.clevertap.renderNotificationClicked(e)})({msgId:e.wzrk_id,pivotId:e.wzrk_pivot,msgCTkv:{wzrk_selector:o.isTrackingClicks.name}})})),o.values)switch(o.values.editor){case"html":i.outerHTML=t?o.values.html.text:o.values.html;break;case"json":!function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const o={};o.msgId=e.wzrk_id,e.wzrk_pivot&&(o.pivotId=e.wzrk_pivot);null!=t.json&&(o.json=i?t.json.text:t.json);const n=new CustomEvent("CT_web_native_display_buider",{detail:o});document.dispatchEvent(n)}(e,o.values,t);break;case"form":s.msgCTkv={wzrk_selector:o.selector},function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){if(void 0!==t.style&&Object.keys(t.style).forEach((i=>{e.style.setProperty(i,t.style[i])})),void 0!==t.underline){const i=e.style.textDecoration;t.underline?e.style.textDecoration="".concat(i," underline").trim():e.style.textDecoration=i.replace("underline","").trim()}if(void 0!==t.text&&(e.innerText=o?t.text.text:t.text),void 0!==t.clickDetails){const n=t.clickDetails.clickUrl;e.onclick=t.clickDetails.newTab?()=>{o||window.clevertap.raiseNotificationClicked(i),window.open(n,"_blank").focus()}:()=>{o||window.clevertap.raiseNotificationClicked(i),window.location.href=n}}void 0!==t.imgURL&&"img"===e.tagName.toLowerCase()&&(e.src=t.imgURL)}}(i,o.values.form,s,t)}};o.forEach((e=>{e.url===n&&e.selectorData.forEach((e=>{if((e.selector.includes("-afterend-")||e.selector.includes("-beforebegin-"))&&e.values.initialHtml)i.push(e);else{let t;try{t=document.querySelector(e.selector)}catch(e){}t?(a(),l(t,e)):(e=>{let t=0;const i=setInterval((()=>{let o;try{o=document.querySelector(e.selector)}catch(e){}o?(a(),l(o,e),clearInterval(i)):++t>=20&&(console.log("No element present on DOM with selector '".concat(e,"'.")),clearInterval(i))}),500)})(e)}}))}));const c=e=>{const{pos:t,sibling:i}=function(e){const t=/^(\d+)-(afterend|beforebegin)-(.+)$/,i=e.match(t);if(i)return{pos:i[2],sibling:i[3]};return{pos:"beforebegin",sibling:""}}(e.selector);let o=0;const n=setInterval((()=>{let r=null;try{const e=document.querySelector(i);r=document.querySelector('[ct-selector="'.concat(i,'"]'))||e}catch(e){r=document.querySelector('[ct-selector="'.concat(i,'"]'))}if(r){const o=document.createElement("div");o.innerHTML=e.values.initialHtml;const s=o.firstElementChild;r.insertAdjacentElement(t,s),r.getAttribute("ct-selector")||r.setAttribute("ct-selector",i);const c=document.querySelector('[ct-selector="'.concat(e.selector,'"]'));a(),l(c,e),clearInterval(n)}else++o>=20&&(console.log("No element present on DOM with selector '".concat(i,"'.")),clearInterval(n))}),500)};if(i.length>0){i.sort(((e,t)=>parseInt(e.selector.split("-")[0],10)-parseInt(t.selector.split("-")[0],10))).forEach(c)}};function rn(e){const{personalizedSelectors:t=[],delayTime:i=2e3}=e,o={};let n,r=0;function s(e){function t(e){const t=[];e.forEach((e=>{const i=document.querySelectorAll(e);i.length?(i.forEach((e=>{(function(e){const t=e.getBoundingClientRect(),{innerHeight:i,innerWidth:o}=window;return t.bottom>0&&t.right>0&&t.tope.classList.add(Ko))),setTimeout((()=>{e.forEach((e=>{e.classList.remove(Ko),e.classList.add(qo)}))}),i)}(t)}t(e),Object.keys(o).length&&(n=setInterval((function(){t(Object.keys(o)),r++,(0===Object.keys(o).length||r>20)&&(r=0,clearInterval(n))}),100))}!function(){const e=Go;if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .wve-anti-flicker-hide {\n opacity: 0 !important;\n }\n .wve-anti-flicker-show {\n transition: opacity 0.5s, filter 0.5s !important;\n }\n ",document.head.appendChild(t)}}(),window.addEventListener("DOMContentLoaded",(()=>{!function(){let e=document.location.href;new MutationObserver((()=>{e!==document.location.href&&(e=document.location.href,s(t))})).observe(document.body,{childList:!0,subtree:!0})}()})),s(t)}class sn extends HTMLElement{constructor(){super(),this._details=null,this.shadow=null,this.shadow=this.attachShadow({mode:"open"})}get details(){return this._details||""}set details(e){null===this._details&&(this._details=e,this.renderBanner())}renderBanner(){this.shadow.innerHTML=this.getBannerContent(),!1!==this.trackClick&&this.addEventListener("click",(()=>{const e=this.details.onClick;e&&(this.details.window?window.open(e,"_blank"):window.parent.location.href=e),window.clevertap.renderNotificationClicked({msgId:this.msgId,pivotId:this.pivotId})})),window.clevertap.renderNotificationViewed({msgId:this.msgId,pivotId:this.pivotId})}getBannerContent(){return'\n \n \n ")}}class an extends HTMLElement{constructor(){super(),this._target=null,this._carousel=null,this.shadow=null,this.slides=0,this.previouslySelectedItem=-1,this.selectedItem=1,this.autoSlide=null,this.stopAutoSlideTimeout=null,this.shadow=this.attachShadow({mode:"open"}),void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",sn)}get target(){return this._target||""}set target(e){null===this._target&&(this._target=e,this.renderCarousel())}get details(){return this.target.display.details}get display(){return this.target.display}renderCarousel(){this.slides=this.details.length,this.shadow.innerHTML=this.getStyles();const e=this.getCarouselContent();this.display.showNavBtns&&e.insertAdjacentHTML("beforeend",this.display.navBtnsHtml),this.display.showNavArrows&&(e.insertAdjacentHTML("beforeend",this.display.leftNavArrowHtml),e.insertAdjacentHTML("beforeend",this.display.rightNavArrowHtml)),this._carousel=e,this.shadow.appendChild(e),this.setupClick(),this.updateSelectedItem(),this.startAutoSlide(),this.setupOnHover(),window.clevertap.renderNotificationViewed({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot})}setupClick(){this._carousel.addEventListener("click",(e=>{const t=e.target.id;if(t.startsWith("carousel__button")){const e=+t.split("-")[1];e!==this.selectedItem&&(this.previouslySelectedItem=this.selectedItem,this.selectedItem=e,this.updateSelectedItem(),this.startAutoSlide())}else if(t.startsWith("carousel__arrow"))t.endsWith("right")?this.goToNext():this.goToPrev(),this.startAutoSlide();else if(t.indexOf("-")>-1){const e=+t.split("-")[1],i=e-1;window.parent.clevertap&&window.clevertap.renderNotificationClicked({msgId:this.target.wzrk_id,pivotId:this.target.wzrk_pivot,wzrk_slideNo:e});const o=this.details[i].onClick;""!==o&&(this.details[i].window?window.open(o,"_blank"):window.location.href=o)}}))}setupOnHover(){this._carousel.addEventListener("mouseenter",(e=>{this.stopAutoSlideTimeout=setTimeout((()=>{this.autoSlide=clearInterval(this.autoSlide)}),500)})),this._carousel.addEventListener("mouseleave",(e=>{clearTimeout(this.stopAutoSlideTimeout),void 0===this.autoSlide&&this.startAutoSlide()}))}getCarouselContent(){const e=document.createElement("div");return e.setAttribute("class","carousel"),this.details.forEach(((t,i)=>{const o=document.createElement("ct-web-personalisation-banner");o.classList.add("carousel__item"),o.trackClick=!1,o.setAttribute("id","carousel__item-".concat(i+1)),o.details=t,e.appendChild(o)})),e}getStyles(){var e,t;return"\n \n ")}updateSelectedItem(){if(-1!==this.previouslySelectedItem){const e=this.shadow.getElementById("carousel__item-".concat(this.previouslySelectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.previouslySelectedItem));e.classList.remove("carousel__item--selected"),t&&t.classList.remove("carousel__button--selected")}const e=this.shadow.getElementById("carousel__item-".concat(this.selectedItem)),t=this.shadow.getElementById("carousel__button-".concat(this.selectedItem));e.classList.add("carousel__item--selected"),t&&t.classList.add("carousel__button--selected")}startAutoSlide(){clearInterval(this.autoSlide),this.autoSlide=setInterval((()=>{this.goToNext()}),this.display.sliderTime?1e3*this.display.sliderTime:3e3)}goToNext(){this.goTo(this.selectedItem,(this.selectedItem+1)%this.slides)}goToPrev(){this.goTo(this.selectedItem,this.selectedItem-1)}goTo(e,t){this.previouslySelectedItem=e,this.selectedItem=t,0===t&&(this.selectedItem=this.slides),this.updateSelectedItem()}}const ln=e=>{var t;void 0===customElements.get("ct-web-personalisation-banner")&&customElements.define("ct-web-personalisation-banner",sn);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-banner");o.msgId=e.wzrk_id,o.pivotId=e.wzrk_pivot,o.divHeight=e.display.divHeight,o.details=e.display.details[0];const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},cn=e=>{var t;void 0===customElements.get("ct-web-personalisation-carousel")&&customElements.define("ct-web-personalisation-carousel",an);const i=null!==(t=e.display.divId)&&void 0!==t?t:e.display.divSelector,o=document.createElement("ct-web-personalisation-carousel");o.target=e;const n=e.display.divId?document.getElementById(i):document.querySelector(i);n.innerHTML="",n.appendChild(o)},dn=e=>{const t={};t.msgId=e.wzrk_id,e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.msgContent.kv&&(t.kv=e.msgContent.kv);const i=new CustomEvent("CT_web_native_display",{detail:t});document.dispatchEvent(i)},hn=e=>{const{display:t,wzrk_id:i,wzrk_pivot:o}=e||{},{divId:n}=t||{},r=t.details[0].html;if(!n||!r)return void console.error("No div Id or no html found");let s=!1;const a={msgId:i,pivotId:o};(e=>{let t=0;const i=setInterval((()=>{const o=document.querySelector(e);o?(s||(s=!0,window.clevertap.renderNotificationViewed(a)),o.outerHTML=r,clearInterval(i)):++t>=20&&(console.log("No element present on DOM with divId '".concat(e,"'.")),clearInterval(i))}),500)})(n)},un=e=>{const t={};t.msgId=e.wzrk_id;const i=e.display.details[0].json;e.wzrk_pivot&&(t.pivotId=e.wzrk_pivot),null!=e.display.json&&(t.json=i);const o=new CustomEvent("CT_web_native_display_json",{detail:t});document.dispatchEvent(o)},pn=(e,t)=>{const i=window.parent[e];"function"==typeof i&&(null!=t.display.kv?i(t.display.kv):i())},gn=(e,t)=>{const i="